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

Tutoriais Básicos de Java

Controle de fluxo Java

Array Java

Java orientação a objetos (I)

Java orientação a objetos (II)

Java orientação a objetos (III)

Tratamento de Exceções Java

Lista Java (List)

Java Queue (fila)

Conjunto Map Java

Conjunto Set Java

Entrada e saída Java (I/O)

Reader Java/Writer

Outros tópicos Java

Implementação de construtor privado em programas Java

Exemplos completos Java

Neste exemplo, vamos aprender a implementar um construtor privado em Java.

Para entender este exemplo, você deve entender o seguinteProgramação JavaTema:

Exemplo1Criação de construtor privado no Java

class Test {
  //Cria o construtor privado
  private Test() {
    System.out.println("Este é o construtor privado.");
  }
  //Cria um método público estático
  public static void instanceMethod() {
    //Cria uma instância da classe Test
    Test obj = new Test();
  }
}
class Main {
  public static void main(String[] args) {
    //Chama instanceMethod()
    Test.instanceMethod();
  }
}

Resultados de saída

Este é o construtor privado

No exemplo acima, criamos o construtor privado da classe Test. Portanto, não podemos criar o objeto dessa classe fora dela.

É por isso que criamos um método público estático chamado instanceMethod() dentro da classe, que é usado para criar o objeto da classe Test. Dentro da classe Main, chamamos esse método usando o nome da classe.

Exemplo2Padrão de design Singleton em Java usando construtor privado

O padrão de design Singleton em Java garante que uma classe tenha apenas uma instância. Para isso, usamos o construtor privado.

class Language {
  //Cria uma variável estática pública do tipo da classe
  private static Language language;
  //Construtor privado
  private Language() {
    System.out.println("Construtor privado interno");
  }
  //Método público estático
  public static Language getInstance() {
     //Cria um objeto (se ainda não foi criado)
     if(language == null) {
        language = new Language();
     }
      //Retorna o objeto singleton
      return language;
  }
  public void display() {
      System.out.println("Implementou o padrão Singleton");
  }
}
class Main {
  public static void main(String[] args) {
     Language db1;
     //Chame o método getInstance
     db1= Language.getInstance();
     db1.display();
  }
}

Resultados de saída

Construtor privado interno
Implementou o padrão Singleton

No exemplo acima, criamos uma classe chamada Languages. A classe contém:

  • language - Variável privada de tipo de classe

  • Language() - Construtor privado

  • getInstance() - Método público estático de classe

  • display() - Método público

Como o construtor é privado, não podemos criar objetos Language a partir da classe externa. Portanto, criamos o objeto da classe dentro do método getInstance().

mas configuramos a condição para criar apenas um objeto. E o método retorna o objeto.

Atenção a esta linha,

db1 = Language.getInstance();

Aqui,

  • db1 é uma variável do tipo Language

  • Language.getInstance() - Chamada de método getInstance()

Como o getInstance() retorna um objeto da classe Language, então para db1A variável atribuiu o objeto retornado.

Por fim, chamamos o método display() usando um objeto.

Exemplos completos Java