Java

[Java] 접근 제어자, 생성자, 싱글톤 패턴

Bay Im 2024. 3. 13. 21:26

접근 제어자 (Access Modifier)

  • public
    • 동일 패키지의 모든 클래스와 다른 패키지의 모든 클래스에서 사용 가능
  • protected
    • 동일 패키지의 모든 클래스와 다른 패키지의 자식 클래스에서 사용 가능
  • default
    • 동일 패키지의 모든 클래스에서 사용 가능
  • private
    • 동일 클래스에서 사용 가능 (캡슐화)
    • Getter/Setter 함수를 통하여 접근하도록 허용

 

생성자 함수 (Constructor)

  • 생성자 (Constructor)
    • 클래스 객체가 생성될 때(new로 인스턴스 생성하면) 자동으로 호출되는 메소드
    • public 클래스이름() { … } 형태
    • 매개변수 없이도 만들 수 있고 오버로딩으로 매개변수를 넣어서 만들 수 있다. 호출 시에 매개변수를 주어서 초기화 가능
    • 부모 클래스에 기본 생성자가 있을 때 자식 인스턴스 생성 시, 자동으로 부모 클래스 기본 생성자가 먼저 호출된다.
  • static 키워드
    • new 인스턴스 객체 생성 없이 바로 메서드나 변수를 사용 가능하도록 하는 키워드
    • 함수나 변수 제일 앞에 static을 붙여주면 사용 가능
    • staitc 함수 안에서는 this를 사용할 수 없다.
    • 메인에서 사용 시 클래스이름.static함수나 변수이름 형식으로 값을 가져온다.
      • ex) StaticClass.a;

 

싱글톤 패턴

  • 싱글톤 객체 (Singleton pattern)
    • 프로그램 안에서 유일한 클래스 객체
    • new를 사용하여 여러개의 객체를 찍어낼 수 있지만 모두 주소값이 같은 객체를 만들어 낸다.
    • 유일한 객체가 필요한 이유는 유일한 정보를 저장하기 위함이다.
    • 싱글톤 생성
      • 예시
        • class SingletonClass {
              private static SingletonClass singleton;
          
              public static SingletonClass getInstance() {
                  if (singleton == null) {
                      singleton = new SingletonClass();
                  }
                  return singleton;
              }
          }
          
          // 메인 영역(psvm)
          SingletonClass single1 = SingletonClass.getInstance();
          SingletonClass single2 = SingletonClass.getInstance();
          
          // 다른 객체 두개를 만들었지만 주소값은 같다.
          System.out.println(single1);
          System.out.println(single2);

'Java' 카테고리의 다른 글

[Java] Abstract, Interface  (0) 2024.03.13
[Java] 상속, Override  (0) 2024.03.13
[Java] static, void, this  (0) 2024.03.13
[Java] 객체(Object), Class, Method  (0) 2024.03.13
[Java] Array  (0) 2024.03.13