Dev.J
[JAVA] 문제 4-4 학생이 버스나 지하철을 타고 학교에 가는 것을 객체 지향 프로그램으로 구현 본문
학생이 버스나 지하철을 타고 학교에 가는 것을 객체 지향 프로그램으로 구현한다.
제시하지 않은 것은 임의로 추가하여 구현.
학생클래스(Student)
멤버변수 : 이름(name), 학년(grade), 가진 돈(money)
메소드
버스탄다(takeBus) : 버스를 타면 1000원을 지불
지하철탄다(takeSubway) : 지하철을 타면 1500원을 지불
학생의 현재 정보(showInfo) : 이름과 남은 돈을 출력
버스클래스(Bus)
멤버변수 : 버스번호(busNumber), 승객수(passengerCount), 버스 수입(money)
버스 번호를 매개변수로 받는 생성자
메소드
take : 승객 한명이 버스를 탄 경우. 요금을 매개변수로 받고 승객수와 버스 수입 증가
showInfo : 버스 번호와 승객수, 버스 수입을 출력
지하철클래스(Subway)
멤버변수 : 지하철노선(lineNumber), 승객수(passgengerCount), 수입액(money)
지하철 노선 번호를 매개변수로 받는 생성자
메소드
take : 승객 한명이 지하철에 탄 경우. 요금을 매개변수로 받고 승객수와 지하철 수입 증가
showInfo : 지하철번호와 승객수, 지하철 수입을 출력
아래 두 명의 학생이 버스(1000원)와 지하철(1500원)을 각각 한 번씩 타고 학교에 갈 때, 각자 가진 돈의 변화와 버스, 지하철의 수입을 출력하는 프로그램을 작성하시오.
학생1 : “홍길동”, 5000원
학생2 : “이길동”, 10000
---------
학생 클래스(Student)
public class Student1 {
String name = "";
int grade = 0;
int money = 0;
public Student1(String n, int m) {
this.name = n;
this.money = m;
}
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(name + "님의 남은 돈은" + money + "원");
// return을 쓸라면 void 자리에 int 등을 쓰고 반환타입에 println을 쓸라면 void를 써야함
}
}
버스 클래스(Bus)
class Bus {
int busNumber = 0;
int passengerCount = 0;
int money = 0;
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);
}
}
지하철 클래스(Subway)
class Subway {
int lineNumber = 0;
int passgengerCount = 0;
int money = 0;
public Subway(int lineNumber){
this.lineNumber = lineNumber;
}
public void take(int money){
this.money += money;
passgengerCount++;
}
public void showInfo(){
System.out.println("지하철 번호는" + lineNumber + "승객수는" + passgengerCount + "지하철 수입은" + money);
}
}
Main 클래스
public class Trans_simulation {
public static void main(String[] args) {
Student1 S1 = new Student1("홍길동", 5000);
Student1 S2 = new Student1("이길동", 10000);
Bus bus100 = new Bus(100); //버스 번호를 매개변수로 받음
Subway subway2 = new Subway(2); //지하철 노선을 매개변수로 받음.
S1.showInfo();
S1.takeBus(bus100);
bus100.showInfo();
S1.showInfo();
System.out.println("");
S2.showInfo();
S2.takeSubway(subway2);
subway2.showInfo();
S2.showInfo();
}
}




'Solved' 카테고리의 다른 글
[JAVA] 문제 4-3 Interface / 인터페이스를 이용하여 가장 키 큰 사람 의 이름을 반환 (0) | 2021.09.06 |
---|---|
[JAVA] 문제 4-1 Interface 사칙연산 계산기 (0) | 2021.09.05 |
[JAVA] 문제 4-2 배열 상속/Food,Melon (0) | 2021.09.05 |
[JAVA] 문제 3-2, 3-3 객체배열과 상속 (0) | 2021.09.05 |
[JAVA] 문제 1-1 평균 출력 (0) | 2021.07.18 |