컴퓨터공학 💻 도서관📚
Part2. 2-13, 14 객체 간의 협력 본문
객체 지향 프로그램에서 객체 간에는 협력이 이루어진다
협력을 위해서는 객체들끼리 매개변수를 통해서 필요한 정보를 주고 받는다
매개변수로 객체를 전달하는 경우가 발생한다
* 객체 협력의 예
MCM
M : 멤버 변수 (객체 속성)
C : 생성자 (입력 함수)
M : 메서드 (협력, 계산, 출력함수)
객체 간의 협력 --> 메서드에서 객체를 매개변수로 주고받는다
Main함수: studentJ , bus100 객체 인스턴스 생성후 studentJ.takeBus(bus100)
--> Student객체: bus.take(1000) (이 코드의 bus는 매개변수 bus)
--> Bus객체: take 함수 수행
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); // 학생이 버스를 타서, 1.버스는 1000원을 벌고,
this.money -= 1000; // 2.학생은 1000원을 썼다
}
public void takeSubway(Subway subway) {
subway.take(1200);
this.money -= 1200;
}
public void showInfo() {
System.out.println(studentName +"님의 남은 돈은 " + money + "원 입니다");
}
}
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 + "원 입니다");
}
}
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 + "원 입니다");
}
}
public class TakeTransTest {
public static void main(String[] args) {
Student studentJ = new Student("James", 5000);
Student studentT = new Student("Tomas", 10000);
Bus bus100 = new Bus(100);
Subway subwayGreen = new Subway(2);
// main 함수(제 3자의 관점): 학생이 버스에 타서 돈을 냈다
studentJ.takeBus(bus100); // student의 메서드 활용 (매개변수는 객체Bus)
studentT.takeSubway(subwayGreen); // student의 메서드
studentJ.showInfo();
studentT.showInfo();
bus100.showBusInfo();
subwayGreen.showSubwayInfo();
}
}
/* 출력 예시
James님의 남은 돈은 4000원 입니다
Thomas님의 남은 돈은 8800원 입니다
100번 버스의 승객은 1명 이고, 수입은 1000원 입니다
2번 지하철의 승객은 1명 이고, 수입은 1200원 입니다 */
'✅🌲강의 복습 노트 > 패캠 JavaSpring 강의,코드 복습' 카테고리의 다른 글
Part2. 2-12 this (0) | 2024.12.27 |
---|---|
Part2. 2-11 캡슐화 (encapsulation) (1) | 2024.12.26 |
Part2. 2-10 접근 제어 지시자 (0) | 2024.12.25 |
Part2. 2-9 참조 자료형 변수 (1) | 2024.12.17 |
Part2. 2-8 객체 구현 복습 (0) | 2024.12.16 |
Comments