SHUSTORY

06-2 객체 간 협력 본문

프로그래밍/JAVA

06-2 객체 간 협력

어서오시우 2023. 2. 23. 00:37
728x90

예제

객체 지향 프로그램의 객체 간 협력이 이루어지는 과정을 학생, 버스, 지하철 세 객체 사이의 협력에 관한 예제를 통해 살펴보겠다.

 

 

학생 클래스 구현하기

  • 멤버 변수(속성) : 이름 / 학년 / 가진 돈
  • 메서드(멤버 함수) : 지하철을 탄다. / 학생의 현재 정보를 보여 준다.

예제01

 

▶ 8행의 생성자는 학생 이름과 해당 학생이 가진 돈을 매개 변수로 받는다.

    학생 클래스 하나를 생성하면 학생 이름과 학생이 가진 돈을 초기화한다.

    디폴트 생성자를 제공하지 않으므로 8행의 생성자를 호출해야 한다.

 

▶ takeBus( )와 takeSubway( ) 메서드는 학생이 가진 돈을 해당 교통수단 이용료만큼 차감시킨다.

 

▶ showInfo( ) 메서드는 학생 정보를 출력해준다.

 

 

버스 클래스 / 지하철 클래스 구현하기

  • 멤버 변수 : 버스 번호, 승객 수, 버스가 받은 요금 총액
  • 메서드 : 승객이 버스에 탄 경우 - 버스 수입 증가 / 승객 수 증가

예제02

 

예제03

 

take( ) 메서드는 승객 한 명이 버스에 탄 경우를 구현한다.

    요금을 매개변수로 받고 요금이 들어오면 버스 수입과 승객 수가 증가한다.

 

Bus(int busNumber) 생성자는 버스 번호를 매개변수로 받아 버스가 생성될 때 버스 번호를 초기화한다.

 

showInfo( ) 메서드는 버스 번호, 버스를 탄 승객 수, 버스 수입에 관한 정보를 출력한다.

 

* 지하철 클래스도 버스 클래스와 마찬가지이다. 

 

 

학생, 버스, 지하철 객체 협력하기

예제04

 

우리가 객체를 클래스로 만들어 구현하면 이렇듯 객체 사이에는 어떤 값을 주고받고 메서드를 호출하는 일이 발생한다.

이 프로그램에서는 학생, 버스, 지하철 객체를 사용했다.

각 객체에 필요한 멤버 변수를 선언하고, 생성자를 정의했다.

객체 사이의 협력 기능도 구현했다.

학생 객체 입장의 '학생이 지하철을 탄다.'와 지하철 객체 입장의 '지하철에 학생이 탄다.' 라는 하나의 사건에 대한 두 객체의 서로 다른 입장을 각 클래스에 메서드로 구현했다.

'프로그래밍 > JAVA' 카테고리의 다른 글

06-4 변수 유효 범위  (0) 2023.02.23
06-3 static 변수  (0) 2023.02.23
06-1 this 예약어  (1) 2023.02.22
05-7 정보 은닉  (0) 2023.02.20
05-6 참조 자료형  (0) 2023.02.20