일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바
- try-catch
- 코린이
- 파이팅
- exception
- 인스턴스
- SSR
- 졸리다
- FileInputStream
- 상속
- 메서드
- MPA
- 초보개발자
- ArrayList
- node.js
- 개발자
- Java
- 변수
- 코딩
- 문자 단위 스트림
- 백엔드
- 인터페이스
- 바이트 단위 스트림
- 자료형
- throws
- 예외 처리
- 보조 스트림
- 배열
- 새벽공부
- 다형성
- Today
- Total
SHUSTORY
06-2 객체 간 협력 본문
예제
객체 지향 프로그램의 객체 간 협력이 이루어지는 과정을 학생, 버스, 지하철 세 객체 사이의 협력에 관한 예제를 통해 살펴보겠다.
학생 클래스 구현하기
- 멤버 변수(속성) : 이름 / 학년 / 가진 돈
- 메서드(멤버 함수) : 지하철을 탄다. / 학생의 현재 정보를 보여 준다.
▶ 8행의 생성자는 학생 이름과 해당 학생이 가진 돈을 매개 변수로 받는다.
학생 클래스 하나를 생성하면 학생 이름과 학생이 가진 돈을 초기화한다.
디폴트 생성자를 제공하지 않으므로 8행의 생성자를 호출해야 한다.
▶ takeBus( )와 takeSubway( ) 메서드는 학생이 가진 돈을 해당 교통수단 이용료만큼 차감시킨다.
▶ showInfo( ) 메서드는 학생 정보를 출력해준다.
버스 클래스 / 지하철 클래스 구현하기
- 멤버 변수 : 버스 번호, 승객 수, 버스가 받은 요금 총액
- 메서드 : 승객이 버스에 탄 경우 - 버스 수입 증가 / 승객 수 증가
▶ take( ) 메서드는 승객 한 명이 버스에 탄 경우를 구현한다.
요금을 매개변수로 받고 요금이 들어오면 버스 수입과 승객 수가 증가한다.
▶ Bus(int busNumber) 생성자는 버스 번호를 매개변수로 받아 버스가 생성될 때 버스 번호를 초기화한다.
▶ showInfo( ) 메서드는 버스 번호, 버스를 탄 승객 수, 버스 수입에 관한 정보를 출력한다.
* 지하철 클래스도 버스 클래스와 마찬가지이다.
학생, 버스, 지하철 객체 협력하기
우리가 객체를 클래스로 만들어 구현하면 이렇듯 객체 사이에는 어떤 값을 주고받고 메서드를 호출하는 일이 발생한다.
이 프로그램에서는 학생, 버스, 지하철 객체를 사용했다.
각 객체에 필요한 멤버 변수를 선언하고, 생성자를 정의했다.
객체 사이의 협력 기능도 구현했다.
학생 객체 입장의 '학생이 지하철을 탄다.'와 지하철 객체 입장의 '지하철에 학생이 탄다.' 라는 하나의 사건에 대한 두 객체의 서로 다른 입장을 각 클래스에 메서드로 구현했다.
'프로그래밍 > 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 |