본문 바로가기

언어/Java

싱글톤

※ 싱글톤 패턴 : 그 타입의 객체는 하나, 객체 하나만 참조하게. 자기 클래스에선 사용 가능

abstract 붙은 애들도 생성자 선언 불가능하다

cf) Constructor summary 없는 건, new 키워드로 객체 생성 X, 클래스 이름 . 으로 시작함
      ex) new Math X / Math.random() ○

 

//제공자 코드
class Single{
	private static Single s = new Single();	// 자동 초기화는 null인데 명시적 초기화 new Single() 또 된다
	private Single() {
	}

	static Single getInstance() {	// return 타입 Single
//		return null;
//		return new Single();	// getInstance 메서드 호출될 때마다 새로운 객체 생성 X
		return s;	// 이미 만들어진 객체 호출, heap 영역의 s변수 	
	}	
	/*
	void m() {
		new Single(); // OK 
	}
	*/	
}

//사용자 코드
public class SingletonTest {

	public static void main(String[] args) {
		Single s1, s2; // 메인메서드의 지역변수들
//		s1 = new Single();	// ERROR, 자기 클래스 내에서는 객체생성(new Single();) 가능한데, 다른 클래스에서는 객체생성 불가능
		
		s1 = Single.getInstance();	// OK
		s2 = Single.getInstance();	// OK
		System.out.println(s1 == s2);		
	}
}

결과

'언어 > Java' 카테고리의 다른 글

상속 예제  (0) 2023.07.31
상속(Inheritance)  (0) 2023.07.31
패키지  (0) 2023.07.31
Product 예제 1  (0) 2023.07.31
오버로드(Overload)  (0) 2023.07.31