설명에 따른 객체를 구현하여 테스트 코드가 실행되도록 구현하기
휴대폰 공장이 있습니다. 휴대폰 공장은 유일한 객체이고, 이 공장에서 생산되는 자동차는 제작될 때마다 고유의 번호가 부여됩니다.
휴대폰 번호가 10001부터 시작되어 휴대폰이 생산될 때마다 10002, 10003 이렇게 번호가 붙도록 휴대폰 공장 클래스, 휴대폰 클래스를 구현하세요
다음 CellPhoneFactoryTest.java 테스트 코드가 수행 되도록 합니다.
CellPhoneFactoryTest.java
public class CellPhoneFactoryTest {
public static void main(String[] args) {
CellPhoneFactory factory = CellPhoneFactory.getInstance();
CellPhone myGalaxy = factory.createCellPhone();
CellPhone yourIphone = factory.createCellPhone();
System.out.println(myGalaxy.getCellPhoneNum()); //10001 출력
System.out.println(yourIphone.getCellPhoneNum()); //10002 출력
}
}
CellPhoneFactory.java
public class CellPhoneFactory {
// 클래스 내부에 유일한 private 인스턴스 생성
private static CellPhoneFactory instance = new CellPhoneFactory();
// 생성자를 private으로 선언하면서 외부에서 new 키워드를 사용한 객체 생성을 못하게 막는다.
private CellPhoneFactory() {
}
// 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공
public static CellPhoneFactory getInstance() {
if(instance == null) {
instance = new CellPhoneFactory();
}
return instance;
}
public CellPhone createCellPhone() {
CellPhone cellPhone = new CellPhone();
return cellPhone;
}
}
CellPhone.java
public class CellPhone {
private static int serialNum = 1000;
int cellPhoneNum;
public CellPhone()
{
serialNum++;
cellPhoneNum = serialNum;
}
public int getCellPhoneNum() {
return cellPhoneNum;
}
}
출처 : 패스트 캠퍼스
'JAVA > 기본 문법' 카테고리의 다른 글
[JAVA] StringTokenizer VS String split() (0) | 2021.04.13 |
---|---|
[JAVA] 무제한 큰 숫자(정수) 다루기 BigInter (0) | 2021.03.14 |
[JAVA] static메서드의 구현과 활용, 변수의 유효 범위 (0) | 2021.03.01 |