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