logo

Por que usamos construtor em Java?

Nesta seção, aprenderemos por que usamos um construtor em Java e qual é o propósito e necessidade do construtor . Junto com isso, veremos também o tipos do construtor.

Em Java, o construtor é semelhante ao método. A propriedade do construtor é que ele deve ter o mesmo nome que o nome da classe. Não possui tipo de retorno. Não precisamos chamar o construtor manualmente. Ele invoca automaticamente de forma implícita durante a instanciação.

algoritmo para pesquisa binária

Em outras palavras, um construtor é um método chamado em tempo de execução durante a criação do objeto usando o operador new. A JVM o chama automaticamente quando criamos um objeto. Quando não definimos um construtor na classe, o construtor padrão está sempre presente de forma invisível na classe. Existem os seguintes motivos para usar construtores:

  • Usamos construtores para inicializar o objeto com o estado padrão ou inicial. Os valores padrão para primitivos podem não ser o que você procura.
  • Outro motivo para usar o construtor é que ele informa sobre dependências. Em outras palavras, usando o construtor, podemos solicitar ao usuário daquela classe as dependências necessárias.
  • Podemos descobrir o que é necessário para usar esta classe, apenas olhando para o construtor.

Resumindo, usamos o construtor para inicialize a variável de instância da classe.

Tipos de construtores

Existem dois tipos de construtores em Java:

  • Construtor parametrizado
  • Construtor padrão

Construtor parametrizado

Como o nome sugere, aceita argumentos (parâmetros). O construtor parametrizado é usado se quisermos inicializar dinamicamente as variáveis ​​de instância com os valores especificados no momento da instanciação.

Exemplo

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

Construtor padrão

O construtor padrão não aceita nenhum parâmetro. É usado se quisermos inicializar as variáveis ​​de instância com determinados valores. Cada classe Java possui um construtor padrão, de forma invisível. Portanto, não precisamos defini-lo separadamente. Lembre-se de que o construtor padrão é removido da classe quando criamos um construtor parametrizado.

Exemplo

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Nota: Quando não fornecemos nenhum construtor para um programa Java, o compilador Java escreve o construtor padrão em nome do programador e compila o programa. Inicializa as variáveis ​​de instância com os valores padrão. Por exemplo, 0 para inteiro, 0,0 para flutuante e nulo para String.

Vamos criar um programa e usar o construtor padrão e parametrizado.

Na classe Employee, criamos dois construtores, um é o construtor padrão e o outro é o construtor parametrizado. A classe Employee possui duas variáveis ​​privadas, a saber, nome e idade. No método principal, instanciamos a classe e usamos ambos os construtores.

iterando mapa java

Funcionário.java

 import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } } 

Saída:

 Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28