static 필드
- 객체 생성 이전에 메모리에 미리 만들어 두는 필드
static 메소드(클래스 메소드)
- 클래스가 생성될 때 함께 생성되는 메소드
- 객체 생성 이전에 만들어지기 때문에 객체로 접근하지 않는다.
- 클래스이름으로 접근한다.
- User user = User.getInstance()
User 클래스
public class User { private static User user = new User(); private User() { // User 객체 생성은 User 내부에서만 가능하다. } public static User getInstance() { return user; } }
Main 클래스
ublic class Main { public static void main(String[] args) { User user1 = User.getInstance(); System.out.println(user1); User user2 = User.getInstance(); System.out.println(user2); } }
- singleton 객체는 하나만 생성된다.
- User user = new User(); 외부에서는 새로운 객체를 생성할 수 없음
출력:
ex03_singleton.User@26f0a63f
ex03_singleton.User@26f0a63f