728x90
객체 간의 협력
학생이 버스나 지하철을 가는 상황을 객체 지향으로 프로그래밍
package cooperation;
public class Student {
String studentName;
int grade;
int money;
public Student(String studentName, int money) {
this.studentName = studentName;
this.money = money;
}
//중요
public void takeBus(Bus bus) {
bus.take(1000);
money -= 1000;
}
public void takeSubway(Subway subway) {
subway.take(1500);
money -= 1500;
}
public void showInfo() {
System.out.println(studentName + "님의 남은 돈은 " + money + "입니다.");
}
}
package cooperation;
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 showInfo() {
System.out.println("버스 "+ busNumber + "번의 승객은 " + passengerCount + "명이고,수입은"
+ money + "입니다.");
}
}
package cooperation;
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 showInfo() {
System.out.println("지하철 "+ lineNumber + "의 승객은 " + passengerCount + "명이고,수입은"
+ money + "입니다.");
}
}
package cooperation;
public class TakeTrans {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student james = new Student("james",5000);
Student tomas = new Student("tomas",10000);
Bus bus100 = new Bus(100);
james.takeBus(bus100);
james.showInfo();
bus100.showInfo();
Subway subwayGreen = new Subway(2);
tomas.takeSubway(subwayGreen);
tomas.showInfo();
subwayGreen.showInfo();
}
}
'Java' 카테고리의 다른 글
[Java] final란 무엇인가? (0) | 2024.05.10 |
---|---|
2-7 클래스와 객체2 (3) - static 변수 (1) | 2024.03.18 |
2-5 클래스와 객체2 (1) - this (0) | 2024.03.14 |
2-4 클래스와 객체1 (4) - 참조 자료형, private (0) | 2024.03.14 |
2-3 클래스와 객체1 (3) - 클래스, 인스턴스, 참조변수, 참조값, 생성자 (0) | 2024.03.14 |