Java Language Constructor predeterminado


Ejemplo

El "predeterminado" para los constructores es que no tienen ningún argumento. En caso de que no especifique ningún constructor, el compilador generará un constructor predeterminado por usted.
Esto significa que los siguientes dos fragmentos son semánticamente equivalentes:

public class TestClass {
    private String test;
}
public class TestClass {
    private String test;
    public TestClass() {

    }
}

La visibilidad del constructor predeterminado es la misma que la visibilidad de la clase. Por lo tanto, una clase definida de paquete privado tiene un constructor predeterminado privado de paquete

Sin embargo, si tiene un constructor no predeterminado, el compilador no generará un constructor predeterminado para usted. Así que estos no son equivalentes:

public class TestClass {
    private String test;
    public TestClass(String arg) {
    }
}
public class TestClass {
    private String test;
    public TestClass() {
    }
    public TestClass(String arg) {
    }
}

Tenga en cuenta que el constructor generado no realiza una inicialización no estándar. Esto significa que todos los campos de su clase tendrán su valor predeterminado, a menos que tengan un inicializador.

public class TestClass {

    private String testData;

    public TestClass() {
        testData = "Test"
    }
}

Los constructores se llaman así:

TestClass testClass = new TestClass();