El constructor predeterminado en Java

Rashmi Patidar 12 octubre 2023
  1. El constructor predeterminado en Java
  2. El constructor parametrizado en Java
El constructor predeterminado en Java

En el lenguaje Java, el término constructor es similar a los métodos que ejecutamos en programación. Hay algunas propiedades de un constructor que debe tener en cuenta durante su creación.

  1. El nombre del constructor debe ser siempre el mismo que el del nombre de la clase.
  2. No debe haber ningún tipo de retorno del constructor.
  3. Puede haber un constructor parametrizado y un constructor sin argumentos (constructor predeterminado) en una clase.
  4. El constructor siempre se invoca cuando se crea una instancia de un objeto.
  5. El constructor no debe continuar con palabras clave como abstract, static, final y synchronized.

El constructor predeterminado en Java

El constructor predeterminado de Java a menudo se denomina constructor no-args. A continuación, puede consultar el bloque de código para comprender el constructor predeterminado en Java.

public class Main {
  public static void main(String[] args) {
    B b = new B();
    System.out.println(b.a);
  }
}

class B {
  int a;
}

En el bloque de código anterior, observará que hay dos clases; el primero contiene el método main y el otro está escrito para representar la funcionalidad del constructor.

La función main es el punto de entrada del programa y la ejecución comienza aquí. Entonces, la declaración de la clase del controlador, new B(), llama al constructor público sin argumentos de la clase B. Dado que no había una definición explícita del constructor dado, el compilador crea un constructor predeterminado por sí mismo y lo invoca en la declaración anterior.

El constructor inicializa las variables de la clase. Cuando no se define ningún constructor, el compilador inicializa el valor de la variable a sus valores predeterminados. Cuando se hace referencia a la variable a de la clase B en la función println, el valor impreso está en la salida a continuación.

Producción :

0

El constructor parametrizado en Java

El uso de constructores parametrizados es pasar el número de parámetros en el momento de la creación del objeto. A continuación se muestra el bloque de código que demuestra su función.

public class Main {
  public static void main(String[] args) {
    A a = new A(1, "One");
    System.out.println(a.a + " " + a.b);
    //      A a1= new A();
  }
}

class A {
  int a;
  String b;

  A(int a, String b) {
    this.a = a;
    this.b = b;
  }
}

En el bloque de código anterior, A es una clase para demostrar el constructor parametrizado. Y otra es la clase que contiene el método main. En la función, la sentencia new A(1, "One") llama internamente al constructor parametrizado de la clase A. El objeto creado se asigna a la referencia de la clase y la definición del constructor se define en la clase.

El constructor, A(int a, String b), inicializa el valor de las variables a y b. Los valores pasados ​​en los parámetros se copiarán en las variables. Cuando está en la función println, el uso de la variable de referencia llama a las variables de clase de la clase A; imprime el valor instanciado en la salida con un espacio agregado en el medio.

Junto a él, hay una declaración comentada. Comentamos sobre las sentencias que se ejecutan usando el operador //. La instrucción new A() intenta internamente encontrar el constructor sin argumentos de la clase. Si el compilador no encuentra ningún constructor predeterminado, puede crear un constructor predeterminado.

Esta capacidad se restringe al caso en el que no hay un constructor explícito definido. Entonces, en este caso, un usuario tiene que crear el constructor no-args manualmente. El A a1= new A(); La función arroja un error en tiempo de compilación. Las dos opciones para resolver el problema son crear un constructor predeterminado o cambiar la firma del constructor parametrizado existente que lleva la declaración existente a una ruptura. Por lo tanto, se comenta la línea.

Producción :

1 One
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - Java Constructor