자바 싱글톤 예제
public class SystemSpeaker{
public int systemVol= 5; 지역(멤버)변수
}
//private static형 SystemSpeaker클래스의 ss인스턴스 생성
private static SystemSpeaker ss = new SystemSpeaker();
private static SystemSpeaker getInstance(){ //private형 이기때문에 get으로 리턴
return ss;
}
//private 형 생성자
private SystemSpeaker(){
}
----------------------------------------------------------------------------------------------------------------------------------------
public class Main{
public static void main(String[] args){
SystemSpeaker ss1 = SystemSpeaker.getInstance(); // ss1 는 ss
SystemSpeaker ss2 = SystemSpeaker.getInstance(); //ss2 는 ss
/* 즉 원래는 클래스 마다 인스턴스의 주소 값은 다른데 그것을 private static형 getInstance으로 인스턴스명이 다르더라도
인스턴스가 가르키는 주소값을 같게 만드는 것이 싱글톤이다
싱글톤은 예를 들어 학교 생활 기록부를 작성할때 학교명의 객체는 모두 같으므로 어떤 인스턴스라도 전부 같다 즉 절대로 변하면 되지않는
인스턴스에 사용한다
*/
//객체의 주소를 비교
System.out.println(ss1);
System.out.println(ss2);
//객체의 멤버변수를 읽어오기
System.out.println(ss1.systemVol);
System.out.println(ss1.systemVol);
}
}
/*출력형태
SystemSpeaker@14db9856 /*인스턴스명이 다른데도 인스턴스의 주소값을 같게하는것 싱글톤 */
SystemSpeaker@14db9856 /*인스턴스명이 다른데도 인스턴스의 주소값을 같게하는것 싱글톤 */
5
5