(Ich bin überrascht zu Seite drei der Suchergebnisse zu erhalten, ohne eine einfache Version dieser Frage zu finden, zu verweisen.)
Sie haben zwei Möglichkeiten für den Standardwert einer Instanzvariablen einstellen (manchmal auch eine „Instanz Feld“):
ein i Verwenden nitializer auf der Erklärung.
Verwenden einer Zuweisung in einem Konstruktor.
Say I Example
und eine Instanzvariable answer
dessen Standard sein sollte 42. Ich kann entweder eine Klasse:
// Example of #1 (initializer)
class Example {
private int answer = 42;
// ...
}
oder
// Example of #2 (assignment within constructor)
class Example {
private int answer;
Example() {
this.answer = 42;
}
}
Initialisierer (# 1) verarbeitet werden, während der Konstruktion vor jeder anderen Logik in Ihrem Konstruktor (aber nach dem Aufruf des Superklassenkonstruktors).
Welche Sie verwenden, hängt von der Klasse und in gewissem Maße vom persönlichen Stil ab. Wenn die Klasse mehrere Konstruktoren haben soll, aber ich möchte, dass answer
standardmäßig auf 42 gesetzt wird, unabhängig davon, welcher Konstruktor verwendet wird, macht die Verwendung der Initialisierung Sinn, weil ich sie dann an einer Stelle ablege, anstatt sie in jeden Konstruktor zu schreiben. Wenn der Standardwert für answer
davon abhängt, welcher Konstruktor verwendet wird, oder abhängig von einem Parameter, den der Konstruktor empfängt/empfängt, ist es sinnvoll, ihn im Konstruktor zu setzen.
In Ihrem speziellen Fall werden Sie aufgefordert, einen Konstruktor zu verwenden.
Probieren Sie einfach einen Code und wenn Sie scheitern, fragen Sie hier nach Erfahrungen. –