객체를 여러개 찍어내더라도
객체가 유일한 객체이고 싶게 하려면 어떻게 할까요?
이름이 다른 객체를 2개 생성하고
주소값을 출력해보면
서로 다른 것을 확인할 수 있습니다.
Puft p = new Puft("김래현", 26, "puft");
Puft p2 = new Puft("김래현", 26, "puft");
-----------------------------------------------------
com.puft.dec135.main.Puft@139a55
com.puft.dec135.main.Puft@1db9742
여기서는 싱글톤 패턴을 이용하면 되는데요.
싱글톤 패턴이란
클래스가 최초 한번만 메모리를 할당하고 (static)
그 메모리에 객체를 만들어서 사용하는 디자인 패턴입니다.
고정된 메모리 영역을 얻으면서 한번의 new로 객체를 사용하기 때문에
메모리 낭비를 방지할 수 있다는 장점이 있습니다.
구현하는 방법은 객체를 만드는 클래스에
private static final Puft PUFT = new Puft("김래현", 5, "Puft");
static final로 유일한 객체를 선언하는 것입니다.
public static Puft getPuft() {
return PUFT;
}
이를 get함수를 사용해서 main에서 사용하면 됩니다.
Puft p = new Puft("김래현", 26, "puft");
Puft p2 = Puft.getPuft();
둘은 같은 객체가 됩니다.
'Java > 이론' 카테고리의 다른 글
[Java] GUI(Graphical User Interface) (0) | 2024.12.16 |
---|---|
[Java] Factory (0) | 2024.12.13 |
[Java] 다형성(Polymorphism) (0) | 2024.12.13 |
[Java] 추상화 (abstract) (0) | 2024.12.13 |
[Java] 캡슐화(Encapsulation) (0) | 2024.12.13 |