반응형
객체 지향 프로그램밍에서의 협력
- 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐
- 협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함
- 매개 변수로 객체가 전달되는 경우가 발생
버스와 지하철을 타는 예제 프로그래밍
A 와 B는 각각 버스와 지하철을 타고 학교에 갑니다.
A는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다
B는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다
package ch13;
public class Bus {
int busNumber;
int passengerCount;
int money;
public Bus(int busNumber) {
this.busNumber = busNumber;
}
public void take(int money) {
this.money += money;
passengerCount++;
}
public void showBusInfo() {
System.out.println(busNumber + "번의 승객 수는 " + passengerCount + "명이고, 수입은 " +money + "원입니다");
}
}
package ch13;
public class Subway {
int lineNumber;
int passengerCount;
int money;
public Subway(int lineNumber) {
this.lineNumber = lineNumber;
}
public void take(int money) {
this.money += money;
passengerCount++;
}
public void showSubwayInfo() {
System.out.println(lineNumber + "번의 승객 수는 " + passengerCount + "명이고, 수입은 " +money + "원입니다");
}
}
package ch13;
public class Student {
String studentName;
int money;
public Student(String studentName, int money) {
this.studentName = studentName;
this.money = money;
}
public void takeBus(Bus bus) {
bus.take(1000);
this.money -= 1000;
}
public void takeSubway(Subway subway) {
subway.take(1200);
this.money -= 1200;
}
public void showInfo() {
System.out.println(studentName + "님의 남은 돈은 " + money + "원 입니다.");
}
}
package ch13;
public class TakeTest {
public static void main(String[] args) {
Student studentA = new Student("A", 5000);
Student studentB = new Student("B", 10000);
Bus bus100 = new Bus(100);
Bus bus500 = new Bus(500);
studentA.takeBus(bus100);
Subway greenSubway = new Subway(2);
studentB.takeSubway(greenSubway);
studentA.showInfo();
studentB.showInfo();
bus100.showBusInfo();
greenSubway.showSubwayInfo();
bus500.showBusInfo();
}
}
결과
반응형
'언어 > JAVA' 카테고리의 다른 글
static 메서드 (0) | 2021.04.16 |
---|---|
static 변수 (0) | 2021.04.16 |
객체 자신을 가리키는 this (0) | 2021.04.14 |
캡슐화 (0) | 2021.04.14 |
접근 제어 지시자, get() / set() 메서드, 정보은닉 (0) | 2021.04.13 |