한여름밤의코딩 2015. 11. 10. 13:39

/*
 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우
 단 하나만 생성된다고 해서 이 객체를 싱글톤 객체라고 함 

생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여주면 됨
 */

class SingleTone {

	private static SingleTone obj = new SingleTone();

	private SingleTone() {

	}

	public static SingleTone getInstance() {

//		if (obj == null)
//			obj = new SingleTone();
		return obj;
	}
}

public class SingleToneMain {
	public static void main(String[] args) {

		SingleTone obj = SingleTone.getInstance();
		SingleTone obj2 = SingleTone.getInstance();

		System.out.println("obj : " + obj);   // 두 변수의 주소 값이 같다는 말은 같은 주소를 참조하고 있다는 뜻
		System.out.println("obj2 : " + obj2);

		// SingleTone obj = new SingleTone();
		// SingleTone obj2 = new SingleTone();
		// SingleTone obj3 = new SingleTone();
		// SingleTone obj4 = new SingleTone();
	}
}