정구리의 우주정복
[Java] 객체 생성, 클래스에서 다른 클래스 호출해 사용하기 본문
간단하게 사람 객체를 만들어 버스와 지하철을 태워보는 시나리오이다.
Main.java
public class Main {
public static void main(String[] args) {
Worker a = new Worker("A");
Worker b = new Worker("B");
Subway no1 = new Subway("1");
Bus no400 = new Bus("400");
Bus no500 = new Bus("500");
a.takeSubway(no1);
b.takeBus(no500);
a.showWorkerInfo();
b.showWorkerInfo();
no1.showSubInfo();
no400.showBusInfo();
no500.showBusInfo();
}
}
우선 main부터 보자
Worker 객체 a와 b 를 생성해준다
Subway 객체를 no1 이라는 이름으로 생성해준다
Bus 객체는 no400,no500 이라는 이름으로 두개 생성해준다 .
a가 takeSubway 를 호출한다 매개변수는 Subway 인 no1 이 들어간다 -> a가 지하철을 탔다 정도로 이해하면 됨
b 가 takeBus 를 호출 매개변수는 Bus no500 이 들어간다 -> B가 버스를 탔다
a와 b 의 workwerInfo 를 출력하는 showWorkerInfo 호출, 매개변수는 없다
no1, no400, no500의 정보를 출력하는 showSubInfo 와 showBusInfo 를 호출한다
Worker.java
public class Worker {
String workerName;
int money;
public Worker(String workerName) { //초기화 시켜주기
this.workerName = workerName;
money = 10_000; //
}
public void takeBus(Bus bus) {
bus.take(2000);
money -= 2000;
}
public void takeSubway(Subway subway) {
subway.take(3000);
money -= 3000;
}
public void showWorkerInfo() {
System.out.printf("%s 님의 잔액은 %d 원 입니다. \n",workerName,money);
System.out.println();
}
}
초기화 할때 workerName 과 money 를 10_000원으로 초기화 해준다
takeBus(Bus bus) :
만약 버스를 타면 Bus 안의 take 를 가져온다 2000을 매개변수로 전달해준다
그리고 Worker가 가진 money 의 2000 을 빼준다
takeSubway 는 bus 와 동일
showWorkerInfo 를 통해 정보를 출력해준다
Subway.java
public class Subway {
String subwayName;
int income;
int total;
public Subway(String subwayName) {
this.subwayName = subwayName;
income = 0;
}
public void take(int money) {
income += money;
total ++;
}
public void showSubInfo() {
System.out.println(subwayName + "호선의 수입은 : "+income+"원 입니다 .");
System.out.println(subwayName + "의 승객 수 는 : "+total+"명 입니다 .");
System.out.println();
}
}
초기화 시 subwayName 은 subwayName 으로 income(수입) 은 0으로 초기화 해준다
total 에는 총 탑승 인원을 넣어줄 예정이다.
take(int money) : take 실행시 (위의 worker에서 subway.take(2000) 이런식으로 int형 변수를 전달해줬다)
income 에 money 를 더해주고
total(인원수) 를 ++ 해준다
showSubInfo 를 이용해 현재 정보들을 출력해준다 .
Bus.java (Subway 와 동일 매커니즘으로 설명 생략)
public class Bus {
String busName;
int income;
int total;
public Bus(String busName) {
this.busName = busName;
income = 0;
total = 0;
}
public void take(int money) {
income += money;
total ++;
}
public void showBusInfo() {
System.out.println(busName + "의 수입은 : "+income+"원 입니다 .");
System.out.println(busName + "의 승객 수 는 : "+total+"명 입니다 .");
System.out.println();
}
}
'STUDY > K-DIGITAL' 카테고리의 다른 글
[HTML/CSS] position 정복하기 (0) | 2022.08.23 |
---|---|
[Java] static에 대해 (0) | 2022.08.21 |
[Java] Mac Eclipse IDE / Projects are not visible in workspace folder (0) | 2022.08.21 |
[Java] 객체를 배열로 다루기 (0) | 2022.08.18 |
[Java] Math.random 사용법, 배수 출력하기 (0) | 2022.08.11 |