Java Language Constructeur par défaut


Exemple

La "valeur par défaut" pour les constructeurs est qu'ils n'ont aucun argument. Si vous ne spécifiez aucun constructeur, le compilateur générera un constructeur par défaut pour vous.
Cela signifie que les deux extraits suivants sont sémantiquement équivalents:

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

    }
}

La visibilité du constructeur par défaut est la même que celle de la classe. Ainsi, une classe définie package-private a un constructeur par défaut package-private

Cependant, si vous avez un constructeur autre que celui par défaut, le compilateur ne générera pas de constructeur par défaut pour vous. Donc, ils ne sont pas équivalents:

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

Attention, le constructeur généré n'effectue aucune initialisation non standard. Cela signifie que tous les champs de votre classe auront leur valeur par défaut, à moins qu'ils n'aient un initialiseur.

public class TestClass {

    private String testData;

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

Les constructeurs sont appelés comme ceci:

TestClass testClass = new TestClass();