English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 대상지향(I)

Java 대상지향(II)

Java 대상지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map集合

Java Set集合

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램에서 비공개 생성자 구현

Java 예제 모든 것

이 예제에서는 Java로 비공개 생성자를 구현하는 방법을 배울 것입니다.

이 예제를 이해하기 위해 다음을 이해해야 합니다}}Java 프로그래밍주제:

예제1:사적인 생성자를 생성하는 Java 프로그램

class Test {
  //사적인 생성자를 생성합니다
  private Test() {
    System.out.println("이것은 사적인 생성자입니다.");
  }
  //공개적인 정적 메서드를 생성합니다
  public static void instanceMethod() {
    //Test 클래스의 인스턴스를 생성합니다
    Test obj = new Test();
  }
}
class Main {
  public static void main(String[] args) {
    //instanceMethod() 호출
    Test.instanceMethod();
  }
}

출력 결과

이것은 사적인 생성자입니다.

위의 예제에서는 Test 클래스의 사적인 생성자를 생성했습니다. 따라서 Test 클래스 외부에서는 이 클래스의 객체를 생성할 수 없습니다.

따라서 우리는 클래스 내부에 'instanceMethod()'라는 공개적인 정적 메서드를 생성했습니다. 이 메서드는 Test 클래스의 객체를 생성합니다. Main 클래스에서는 클래스 이름을 사용하여 이 메서드를 호출합니다.

예제2사적인 생성자를 사용하는 Java 싱글턴 디자인 패턴

Java 싱글턴 디자인 패턴은 클래스가 하나의 인스턴스만 가지도록 보장합니다. 이를 위해 사적인 생성자를 사용합니다.

class Language {
  //클래스 타입의 공개적인 정적 변수를 생성합니다
  private static Language language;
  //사적인 생성자
  private Language() {
    System.out.println("내부 사적인 생성자");
  }
  //공개적인 정적 메서드
  public static Language getInstance() {
     //객체를 생성합니다(생성되지 않았다면)
     if(language == null) {
        language = new Language();
     }
      //싱글턴 객체를 반환합니다
      return language;
  }
  public void display() {
      System.out.println("싱글턴 패턴을 구현했습니다");
  }
}
class Main {
  public static void main(String[] args) {
     Language db1;
     //getInstance() 메서드를 호출합니다
     db1= Language.getInstance();
     db1.display();
  }
}

출력 결과

내부 사적인 생성자
싱글턴 패턴을 구현했습니다

위의 예제에서는 'Languages'라는 클래스를 생성했습니다. 이 클래스는 다음과 같습니다:

  • language - 클래스 타입 private 변수

  • Language() - private 생성자

  • getInstance() - public static 클래스 메서드

  • display() - public 메서드

생성자가 사적인 것인 데다가, 우리는 외부 클래스에서 Language 객체를 생성할 수 없기 때문에. 따라서, getInstance() 메서드 내에서 이 클래스의 객체를 생성했습니다.

하지만, 우리는 단 하나의 객체 만 생성하는 조건을 설정했습니다. 그리고 이 메서드는 객체를 반환합니다.

이 줄을 주목하십시오

db1 = Language.getInstance();

이곳에서

  • db1 Language 타입의 변수

  • Language.getInstance() - 메서드 호출하기

getInstance()는 Language 클래스의 객체를 반환하기 때문에 db1변수는 반환된 객체를 할당했습니다.

마지막으로, 우리는 객체를 사용하여 display() 메서드를 호출했습니다.

Java 예제 모든 것