[java] 대중교통 이용 프로그램 만들기

DEVELOPERS_Ivan ㅣ 2023. 8. 3. 23:19

// 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