Neste exemplo, aprenderemos a implementar construtores privados em Java.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Construtores Java
- Java Singleton
Exemplo 1: programa Java para criar um construtor privado
class Test ( // create private constructor private Test () ( System.out.println("This is a private constructor."); ) // create a public static method public static void instanceMethod() ( // create an instance of Test class Test obj = new Test(); ) ) class Main ( public static void main(String() args) ( // call the instanceMethod() Test.instanceMethod(); ) )
Resultado
Este é um construtor privado.
No exemplo acima, criamos um construtor privado da Test
classe. Portanto, não podemos criar um objeto da Test
classe fora da classe.
É por isso que criamos um public static
método nomeado instanceMethod()
dentro da classe que é usado para criar um objeto da classe Test. E da Main
classe, chamamos o método usando o nome da classe.
Exemplo 2: design Java Singleton usando um construtor privado
O padrão de design Java Singleton garante que haja apenas uma instância de uma classe. Para conseguir isso, usamos o construtor privado.
class Language ( // create a public static variable of class type private static Language language; // private constructor private Language() ( System.out.println("Inside Private Constructor"); ) // public static method public static Language getInstance() ( // create object if it's not already created if(language == null) ( language = new Language(); ) // returns the singleton object return language; ) public void display() ( System.out.println("Singleton Pattern is achieved"); ) ) class Main ( public static void main(String() args) ( Language db1; // call the getInstance method db1= Language.getInstance(); db1.display(); ) )
Resultado
O padrão interno do Construtor Privado Singleton é alcançado
No exemplo acima, criamos uma classe chamada Idiomas. A classe contém,
- idioma -
private
variável de tipo de classe - Language () -
private
construtor - getInstance () -
public static
método de tipo de classe - display () -
public
método
Já que o construtor é private
, não podemos criar objetos de Linguagem da classe externa. Portanto, criamos um objeto da classe dentro do getInstance()
método.
No entanto, definimos a condição de forma que apenas um objeto seja criado. E, o método retorna o objeto.
Observe a linha,
db1 = Language.getInstance();
Aqui,
- db1 é uma variável do tipo Language
- Language.getInstance () - chama o método
getInstance()
Visto que, getInstance()
retorna o objeto da classe Language, a variável db1 é atribuída com o objeto retornado.
Finalmente, chamamos o display()
método usando o objeto.