-
- 해당 코드를 참조만 하시고, 복사 붙여넣기를 통한 과제를 진행하시면 도움이 정말 하나도 안됩니다. 부디 직접해보시고, 다른 사람의 솔루션이 어떤 지 참조하시는 정도로만 사용해주세요.
1. 학생 클래스
public class Student { public String studentName; // 학생 이름 public int grade; // 학년 public int money; // 학생이 가지고 있는 돈 public Student(String studentName, int money){ // 이름과 돈 초기화하기 this.studentName = studentName; this.money = money; } public void takeBus(Bus bus) { bus.take(1000); this.money -= 1000; } public void takeSubway(Subway subway) { subway.take(1500); this.money -= 1500; } public void showInfo() { System.out.println(studentName + "님의 남은 돈은 " + money + "입니다."); } }
2. 버스 클래스
public class Bus { int busNumber; // 버스 번호 int passengerCount; // 승객 수 int money; // 버스의 수입 public Bus(int busNumebr){ // 버스 번호를 매개변수로 받는 생성자 this.busNumber = busNumebr; } public void take(int money){ // 승객이 낸 돈을 받음 this.money += money; // 버스의 수입 증가 passengerCount++; // 승객 수 증가 } public void showInfo() { // 버스 정보를 출력하는 함수 System.out.println("버스 " + busNumber + "번의 승객은 " + passengerCount +"명이고, 수입은 " + money + "입니다."); } }
3. 지하철 클래스
public class Subway { public String lineNumber; // 지하철 노선 번호 public int passengerCount; // 승객 수 public int money; // 수입 액 public Subway(String lineNumber) { // 지하철 노선 초기화 this.lineNumber = lineNumber; } public void take(int money) { // 승객이 탄 경우 this.money += money; // 수입 증가 passengerCount++; // 승객 수 증가 } public void showInfo(){ // 지하철 정보 출력 System.out.println(lineNumber + "의 승객은 " + passengerCount +"명이고, 수입은 " + money + "입니다."); } }
4. 2명의 학생이 각각 버스와 지하철을 타고 학교에 간다.
public class TakeTrans { public static void main(String[] args) { // 두 명의 학생을 생성 Student studentChris = new Student("Chris", 5000); Student studentEmily = new Student("Emily", 10000); Bus bus100 = new Bus(100); studentChris.takeBus(bus100); // Chris가 100번 버스를 탐 studentChris.showInfo(); // Chris 정보 출력 bus100.showInfo(); // 버스 정보 출력 Subway subwayGreen = new Subway("2호선"); studentEmily.takeSubway(subwayGreen); // Emily가 2호선을 탐 studentEmily.showInfo(); // Emily 정보 출력 subwayGreen.showInfo(); // 지하철 정보 출력 } }
5. 세 번째 학생인 janna 가 택시를 타고 학교를 가고, 1만원을 지불한 과정을 표현.
TakeTrans.java Student studentJenna= new Student("Jenna", 20000); //추가 Taxi KakaoTaxi = new Taxi("카카오 택시"); studentJenna.takeTaxi(KakaoTaxi); //제나가 카카오택시를 탐 studentJenna.showInfo(); //제나 출력 KakaoTaxi.showInfo(); //택시정보출력 //추가
해당 코드를 추가하여 Jenna에 대한 Student 메소드 생성, 그 후 택시에 대한 정보를 입력하고 출력하도록 함.
Student.java public void takeTaxi(Taxi taxi) { taxi.take(10000); this.money -= 10000; }
Student 클래스에 takeTaxi에 정보를 넣습니다.
package java08_1week; public class Taxi { String TaxiName; // 택시 이름 int passengerCount; // 승객 수 int money; // 택의 수입 public Taxi(String taxiName){ // 버스 번호를 매개변수로 받는 생성자 this.TaxiName = taxiName; } public void take(int money){ // 승객이 낸 돈을 받음 this.money += money; // 택시의 수입 증가 passengerCount++; // 승객 수 증가 } public void showInfo() { // 택시 정보를 출력하는 함수 System.out.println("택시 "+"\""+ TaxiName +"\""+ "의 승객은 " + passengerCount +"명이고, 수입은 " + money + "입니다."); System.out.println("************************************"); } }
그 후 Taxi.java 파일을 생성하여, 해당 Taxi 정보들에 대한 정리와 출력을 하도록 합니다.
6. 네 번째 학생인 Vicky는 4000원을 내고 별다방에서 아메리카노를 사서 마셨습니다. Spencer는 콩다방에서 4500원을 내고 카페라떼를 사 마셨습니다. 앞의 예제를 참고하여 이 과정을 객체지향으로 프로그래밍해보세요.
TakeTrans.java Student studentVicky= new Student("Vicky", 30000); Student studentSpencer= new Student("Spencer", 30000); //추가 Cafe cafestar = new Cafe("별다방", "ame"); studentVicky.takeCafeAme(cafestar); // 비키가 별다방에 감 studentVicky.showInfo(); //비키 출력 cafestar.showInfo(); // 별다방 출력 Cafe cafekong = new Cafe("콩다방", "latte"); studentSpencer.takeCafeLatte(cafekong); // 스팬서 콩다방 감 studentSpencer.showInfo(); //스팬서 출력 cafekong.showInfo(); //콩다방정보출력
비키와 스팬서의 정보를 각각 생성, 관리.
package java08_1week; public class Cafe { String CafeName; // 카페이름 String CafeMenu; // 카페메뉴 int money; // 카페의 수입 public Cafe(String cafeName, String cafeMenu){ // this.CafeName = cafeName; this.CafeMenu = cafeMenu; } public void take(int money, String cafeMenu){ // 승 this.CafeMenu = cafeMenu; // 카페메뉴 this.money += money; } public void showInfo() { // System.out.println("카페 "+"\""+ CafeName +"\""+ "의 메뉴이름은 " + CafeMenu +"이고, 수입은 " + money + "입니다."); System.out.println("************************************"); } }
그 후 cafe.java 파일을 생성하여 정보들을 관리하고 출력합니다.
Student.java public void takeCafeAme(Cafe cafe) { cafe.take(4000, "ame"); this.money -= 4000; } public void takeCafeLatte(Cafe cafe) { cafe.take(4500, "latte"); this.money -= 4500; }
그 후 student.java 파일에 해당 카페 음료에 대한 정보를 넣어 cafe.java 클래스로 전달해줍니다.
결과 화면
이게 맞는건지도 모르겠고, 출력은 맞게 되는데 옳게 짠건가..? 맞나ㅠㅠ..
'실습코드 > 실습 코드' 카테고리의 다른 글
JAVA_학생 학번 발급 메소드, 클래스 생성 (get(),set() 예제) (0) 2021.08.02 JAVA_클래스, 메소드 객체지향 프로그래밍 (카페 이용) (0) 2021.08.02 JAVA_1만 이하의 수에서 친화수 구하기. (친화수, 우애수) (0) 2021.07.30 JAVA_로또 번호 추출하기 (중복된 숫자 제외한 랜덤 숫자 추출) (0) 2021.07.30 JAVA_private와 public 메소드를 이용한 날짜 검증 (0) 2021.07.29 댓글 (비로그인 댓글 허용하지 않습니다.)