FIF's 코딩팩토리

패스트캠퍼스 챌린지 23일차 본문

패스트캠퍼스 챌린지

패스트캠퍼스 챌린지 23일차

FIF 2022. 2. 15. 22:12
반응형

객체간의 협력

객체는 혼란스러우면 안된다. 객체 이름에 맞는 유일한 일들을 해야한다.

그리고 객체끼리 협력이 이루어져야 한다. 하나의 객체가 혼자만 돌아가는게 아니라 다른 객체들과 함께 맞물려 연동되며 돌아가야 한다.

매개변수로 객체 자체가 전달되는 경우도 있다.

 

예를들어 버스를 타고 학교를 간다고 해보자.

이 때, 어떤 버스인지 전달이 이루어져야 하고 어디 학교를 갈건지도 전달 되어야 한다.

 

그렇다면 버스를 타고 학교가는 학생의 과정을 객체 지향 프로그래밍으로 한번 구현해보지.

 

전제 조건은 아래와 같다.

James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다.
James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다.
Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다.

두 학생이 버스와 지하철을 타는 상황을 구현해 봅시다.

 

Student.java

Student 클래스는 학년과 돈이라는 멤버변수가 있고 생성자, 버스를 타는 takeBus() 메서드, 지하철을 타는 takeSubway 메서드, 학생 정보를 나타내는 showInfo() 메서드가 있다.

public class Student {
	
	String studentName;
	int grade;
	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(1200);
		this.money -= 1200;
	}
		
	public void showInfo() {
		System.out.println(studentName +"님의 남은 돈은 " + money + "원 입니다");
	}
}

 

Bus.java

Bus 클래스에는 버스번호, 승객수, 돈이 있다.

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 showBusInfo() {
		System.out.println(busNumber + "번 버스의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
	}
}

 

Subway.java

Subway 메서드에는 노선, 학생수, 돈이 있다.

public class Subway {

	int lineNumber;
	int passengerCount;
	int money;
	
	public Subway(int lineNumber) {
		this.lineNumber = lineNumber;
	}
	
	public void take(int money) {
		this.money += money;
		passengerCount++;
	}
	
	public void showSubwayInfo() {
		System.out.println(lineNumber + "번 지하철의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
	}
}

 

메인메서드에서 출력을 해보면 다음과 같이 나온다.

James님의 남은 돈은 4000원 입니다
Tomas님의 남은 돈은 8800원 입니다
100번 버스의 승객은 1명 이고, 수입은 1000원 입니다
2번 지하철의 승객은 1명 이고, 수입은 1200원 입니다

public class TakeTransTest {

	public static void main(String[] args) {
		Student studentJ = new Student("James", 5000);
		Student studentT = new Student("Tomas", 10000);
		
		Bus bus100 = new Bus(100);
		
		Subway subwayGreen = new Subway(2);
		
		
		studentJ.takeBus(bus100);
		studentT.takeSubway(subwayGreen);
		
		studentJ.showInfo();
		studentT.showInfo();
		
		bus100.showBusInfo();
				
		subwayGreen.showSubwayInfo();
	}

}

 

학생들이 대중교통 이용하는 과정을 객체로 만들어 프로그래밍을 해보았다.

이처럼 일상생활의 모든것들을 객체로 나타내고 표현하며 프로그래밍할 수 있다.

그렇게 하기 위해선 무엇을 어떻게 설계할 것인지 잘 생각해 보며 코딩을 해야 한다.

객체 만들기 연습을 꾸준히 하여 나중에 큰 프로그램을 설계할때 잘 하도록 하자.

 

 

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr



반응형
Comments