Ich schäme mich ein bisschen, das zu fragen, seit Jahren Java-Programmierer zu sein, aber hier ist:
Gibt es einen Unterschied zwischen der Zuordnung von Objekten während der Konstruktion und direkt bei der Deklaration des relevanten Feldes? Das heißt, gibt es einen Unterschied zwischen den folgenden zwei:
AND
%Vor%Natürlich nehme ich an, dass diese spezifischen Init's nicht auf äußeren Parametern beruhen.
Initialisierung der Instanzvariablen erfolgt vor Konstruktoraufruf
Es ist nicht gut zu tun.
Sie können Benutzer vom Aufruf von const einschränken. wenn Sie bestimmte Operationen vor der Initialisierung ausführen möchten.
Best Practice:
- Initialisieren Sie nicht mit den Standardwerten in der Deklaration (null, false, 0, 0.0 ...).
- Ziehen Sie die Initialisierung in der Deklaration vor, wenn Sie keinen Konstruktorparameter haben, der den Wert des Feldes ändert.
- Wenn sich der Wert des Feldes wegen eines Konstruktor-Parameters ändert, setzen Sie die & gt; -Initialisierung in den Konstruktoren.
- Sei konsistent in deiner Praxis. (die wichtigste Regel)
aus hier
Nein, ist es nicht. Nur wenn Sie mehrere Konstruktoren hinzufügen, haben Sie doppelten Code.
Eine Alternative ist die Verwendung eines Initialisierungsblocks
%Vor%Referenz: Initialisierungsfelder
Tags und Links java constructor initialization