본문 바로가기

자바 기초

자바 객체 간 협력 - Do it! 자바프로그래밍기초

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 showInfo() {
    	System.out.println("studentName + "님의 남은 돈은 " + money + "입니다.");
    }
}
public class Bus {
	int busNumber;
    int passengerCount;
    int money;
    
    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 + "입니다.");
    }
}
public class Subway {
	String lineNumber;
    int passengerCount;
    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 + "입니다.");
    }
}
public class TakeTrans {
	public static void main(String[] args) {
    	Student studentJames = new Student("James", 5000);
        Student studentTomas = new Student("Tomas", 10000);
        
        Bus bus100 = new Bus(100);
        studentJames.takeBus(bus100);
        studentJame.showInfo();
        bus100.showInfo();
        
        Subway subwayGreen = new Subway("2호선");
        studentTomas.takeSubway(subwayGreen);
        studentTomas.showInfo();
        subwayGreen.showInfo();
    }
}

위 메인 함수를 보면 두 개의 학생 인스턴스를 생성했다.

한명의 이름은 James, 가진 돈은 5000원으로 초기화. 다른 한명의 이름은 Tomas, 가진 돈은 10000원으로 초기화했다

그리고 버스 인스턴스와 지하철 인스턴스를 생성해서 각각의 참조 변수명을 bus100, subwayGreen으로 생성했다.

James는 버스를 이용하고, Tomas는 지하철을 이용했다. 

학생이 버스를 이용하면 학생이 가진 돈은 1000원 줄고, 버스 승객은 1명 증가 수입은 1000원 증가한다.

학생이 지하철을 이용하면 학생이 가진 돈은 1500원 줄고, 지하철 승객은 1명 증가 수입은 1500원 증가한다.

학생, 버스, 지하철 사이에 협력이 이루어 졌는데,

이렇게 객체들을 따로 만들어 구현하여 객체 사이에 서로 어떤 값을 주고받는 메서드를 호출하는 일이 발생했을 때 협력이 이루어 졌다고 볼 수 있다.