Java - Constructores

Un constructor inicializa un objeto cuando se crea. Tiene el mismo nombre que su clase y es sintácticamente similar a un método. Sin embargo, los constructores no tienen un tipo de retorno explícito.

Normalmente, utilizará un constructor para dar valores iniciales a las variables de instancia definidas por la clase, o para realizar cualquier otro procedimiento de inicio necesario para crear un objeto completamente formado.

Todas las clases tienen constructores, ya sea que defina uno o no, porque Java proporciona automáticamente un constructor predeterminado que inicializa todas las variables miembro a cero. Sin embargo, una vez que defina su propio constructor, el constructor predeterminado ya no se usa.

Sintaxis

A continuación se muestra la sintaxis de un constructor:

class ClassName {
   ClassName() {
   }
}

Java permite dos tipos de constructores:

  • Constructores sin argumento
  • Constructores parametrizados

Constructores sin argumento

Como el nombre especifica, los constructores sin argumentos de Java no aceptan ningún parámetro en su lugar, utilizando estos constructores, las variables de instancia de un método se inicializarán con valores fijos para todos los objetos.

Ejemplo

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

Llamaría al constructor para inicializar objetos de la siguiente manera

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

Esto produciría el siguiente resultado

100 100

Constructores parametrizados

La mayoría de las veces, necesitará un constructor que acepte uno o más parámetros. Los parámetros se agregan a un constructor de la misma manera que se agregan a un método, simplemente declararlos dentro del paréntesis después del nombre del constructor.

Ejemplo

Aquí hay un ejemplo simple que usa un constructor:

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

Llamaría al constructor para inicializar objetos de la siguiente manera:

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);
   }
}

Esto produciría el siguiente resultado:

10 20