정구리의 우주정복

[Java] 객체 생성, 클래스에서 다른 클래스 호출해 사용하기 본문

STUDY/K-DIGITAL

[Java] 객체 생성, 클래스에서 다른 클래스 호출해 사용하기

Jungry_ 2022. 8. 21. 22:14
반응형

간단하게 사람 객체를 만들어 버스와 지하철을 태워보는 시나리오이다.

전체적인 소스 구성

 

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();
	}
}

 

반응형
Comments