자동차 공장이 있습니다. 자동차 공장은 유일한 객체이고, 이 공장에서 생산되는 자동차는 제작될 때마다 고유의 번호가 부여됩니다.
자동차 번호가 10001부터 시작되어 자동차가 생산될 때마다 10002, 10003 이렇게 번호가 붙도록 자동차 공장 클래스, 자동차 클래스를 구현하세요
다음 CarFactoryTest.java 테스트 코드가 수행 되도록 합니다.
테스트 클래스
public class CarFactoryTest {
public static void main(String[] args) {
CarFactory factory = CarFactory.getInstance();
Car mySonata = factory.createCar();
Car yourSonata = factory.createCar();
System.out.println(mySonata.getCarNum()); //10001 출력
System.out.println(yourSonata.getCarNum()); //10002 출력
}
}
- 공장 클래스 - Factory
- 공장 생성자를 static으로 선언
- createCar 메서드 만들기 - Car 클래스에서 생성자로 생성된 거 가져옴
- getInstance만들기
public class Factory {
private static Factory instance = new Factory();
private Factory(){
}
public Car createCar(){
return new Car();
}
public static Factory getInstance(){
if (instance == null){
instance = new Factory();
}
return instance;
}
}
- 자동차 클래스 - Car
- 자동차 번호를 static으로 선언
- 시리얼번호 static으로 생성
- 자동차 생성될 때 자동차 시리얼 번호 부여
- getCarNum() 메서드 만들기 - 시리얼번호 반환
public class Car {
public int carNum;
private static int serial = 10000;
public Car(){
serial++;
this.carNum = serial;
}
public int getCarNum(){
return this.carNum;
}
}