자바기초

싱글톤

lby132 2021. 9. 22. 20:32

public class SingletonClass {

 

private static SingletonClass SINGLETON_CLASS_INSTANCE = new SingletonClass();

public int i = 10;

 

// 생성자도 private 로 만들어서 어디서 객체를 만들어서 쓸 수 없게 한다.

private SingletonClass() {

}

 

// 객체가 생성되기전 static(클래스 영역)에서 생성해서 밑에 new SingletonClass() 로 객체를 만들어서 쓸 수 있게 한다.

public static SingletonClass getSingletonClass() {

 

if(SINGLETON_CLASS_INSTANCE == null) {

SINGLETON_CLASS_INSTANCE = new SingletonClass(); // SINGLETON_CLASS_INSTANCE 값이 널이면 객체를 생성해준다. 

}

 

return SINGLETON_CLASS_INSTANCE; //SingletonClass 타입의 객체를 반환 해준다. 

}

 

public int getI() {

return i;

}

 

public void setI(int i) {

this.i = i;

}

 

}

 

// 다른 클래스에서 싱글톤을 이런식으로 호출해서 쓴다.

public class FirstClass {

 

public FirstClass() {

 

SingletonClass singletonClass = SingletonClass.getSingletonClass();

System.out.println("FirstClass");

System.out.println("i = " + singletonClass.getI());

singletonClass.setI(200);

System.out.println("i = " + singletonClass.getI());

}

}

 

 

어떤 클래스에서 싱글톤을 호출 해서 쓰든 같은 주소값을 가지고 있다.

싱글톤은 딱 한번만 생성돼서 어디서든 공유해서 사용된다.

'자바기초' 카테고리의 다른 글

컬렉션  (0) 2021.09.24
StringBuffer  (0) 2021.09.23
super 키워드와 오버라이드 장점과 단점  (0) 2021.09.19
static 키워드  (0) 2021.09.19
기본 자료형과 객체 자료형  (0) 2021.09.18