Java - Construtores

Um construtor inicializa um objeto quando ele é criado. Ele tem o mesmo nome de sua classe e é sintaticamente semelhante a um método. No entanto, os construtores não têm um tipo de retorno explícito.

Normalmente, você usará um construtor para fornecer valores iniciais às variáveis ​​de instância definidas pela classe ou para realizar qualquer outro procedimento de inicialização necessário para criar um objeto totalmente formado.

Todas as classes têm construtores, quer você defina um ou não, porque Java fornece automaticamente um construtor padrão que inicializa todas as variáveis ​​de membro para zero. No entanto, depois de definir seu próprio construtor, o construtor padrão não é mais usado.

Sintaxe

A seguir está a sintaxe de um construtor -

class ClassName {
   ClassName() {
   }
}

Java permite dois tipos de construtores, a saber -

  • Sem argumento Construtores
  • Construtores parametrizados

Sem argumento Construtores

Como o nome especifica que os construtores sem argumento de Java não aceitam nenhum parâmetro, usando esses construtores, as variáveis ​​de instância de um método serão inicializadas com valores fixos para todos os objetos.

Exemplo

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

Você chamaria o construtor para inicializar objetos da seguinte maneira

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

Isso produziria o seguinte resultado

100 100

Construtores parametrizados

Na maioria das vezes, você precisará de um construtor que aceite um ou mais parâmetros. Os parâmetros são adicionados a um construtor da mesma forma que são adicionados a um método, basta declará-los dentro dos parênteses após o nome do construtor.

Exemplo

Aqui está um exemplo simples que usa um construtor -

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

Você chamaria o construtor para inicializar objetos da seguinte maneira -

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

Isso produziria o seguinte resultado -

10 20