// 20230731_객체와 상호작용 #2 객체(학생, 버스)
// 필요한 클래스(설계) : 학생, 버스
package ch05_1;
public class MainTest {
// 버스 객체 3개를 만들어 주세요.
// 모든 버스의 번호를 가져야 한다.(기본생성자 설정)
public static void main(String[] args) {
Bus bus129 = new Bus(129);
Bus bus189 = new Bus(189);
Bus bus115 = new Bus(115);
// 학생 객체 2개를 만들어 주세요.
Student studentlee = new Student("이강인", 5_000);
Student studentson = new Student("손흥민", 3_000);
// 학생이 버스를 선택해서 승차 및 하차를 시켜 보세요.
// 버스를 타는 손흥민
bus129.showinfo();
studentlee.takeBus(bus129); // 129번 버스를 탄다
// System.out.println(bus129.count);
// System.out.println(bus129.money);
// 하차
bus115.showinfo();
studentlee.takeoffbus(bus115);
// System.out.println(bus115.count);
// System.out.println(bus115.money);
} // end of main
} // end of class
// 20230731_객체와 상호작용 #2 설계(학생)
package ch05_1;
public class Student {
// ** 속성 **
String name; // 학생의 이름
int money; // 학생의 잔액
// ** 생성자 - 이름, 용돈을 받을 수 있도록 설계 **
public Student(String name, int money) {
this.name = name; // 이름
this.money = money; // 용돈
}
// ** 기능 **
// ** 상태 창 **
// 학생이 버스를 탄다.
// 객체 간의 협업 (핵심), 다른 클래스에 영향을 줌
// 버스에 대한 정보를 매개 변수로 받아온다.
// 버스는 객체이다.
public void takeBus(Bus bus) {
bus.takeBus(1_300); // 버스라는 클래스에 1,000원을 지불
this.money -= 1_300; // 1,000원을 소비
}
// 학생이 버스를 내리다.
public void takeoffbus(Bus bus) {
bus.takeoffbus(1);
}
public void showinfo() {
System.out.println(name + "님의 남은 잔액은" + money + " 원 입니다.");
}
} // end of class
// 20230731_객체와 상호작용 #2 설계(버스)
package ch05_1;
public class Bus {
// ** 기능 **
int busNumver; // 버스 호선
int count; // 승객 수
int money; // 수익 금
// 생성자 - 버스 호선
public Bus(int number) {
this.busNumver = number;
}
// ** 속성 **
// 승객을 태우다.(버스요금을 받는다)
public void takeBus(int count) {
System.out.println("승객이 탑승합니다.");
this.count += count;
this.count += (1_300 * count);
}
// 승객을 하차 시키다.
public void takeoffbus(int count) {
if (this.count <= 0) {
System.out.println("잘못 입력 하였습니다.");
} else {
this.count -= count;
System.out.println(count + " 명의 승객이 내립니다.");
}
}
// ** 상태 **
public void showinfo() {
System.out.println("=========== 상태 창 ===========");
System.out.println("버스 번호 : " + this.busNumver);
System.out.println(this.count + " 명이 요금을 지불하였습니다.");
System.out.println("수익금 합계 : " + this.money);
}
} // end of class
=========== 상태 창 ===========
버스 번호 : 129
0 명이 요금을 지불하였습니다.
수익금 합계 : 0
승객이 탑승합니다.
=========== 상태 창 ===========
버스 번호 : 115
0 명이 요금을 지불하였습니다.
수익금 합계 : 0
잘못 입력 하였습니다.
오류 발생
'Java' 카테고리의 다른 글
[java] 상속 (0) | 2023.08.07 |
---|---|
[Java] 배열 (0) | 2023.08.04 |
[java] static (0) | 2023.08.03 |
[java] 접근 제어 지시자와 정보은닉 (0) | 2023.08.01 |
[java] 객체와 객체간의 상호작용 (0) | 2023.07.31 |