2017-01-28 21 views
0

Ich habe eine Hausaufgabe, wo ich eine Klasse erstellen muss, die eine Eingabe und Ausgabe und viele andere Elemente dazwischen hat.Können Sie den Wert einer Variablen ändern, aber müssen alle anderen Dinge, die mit dem alten Wert instanziiert wurden, auf den neuen Wert geändert werden?

Ich muss einen Konstruktor erstellen, der alle anderen Elemente aus einer Datei erstellt, aber ich habe keine Eingabe in der Datei. Die Eingabe soll mit einer Methode namens setInput() gesetzt werden.

Leider instanziiert der Konstruktor einige Elemente, die die Eingabe als Parameter haben. Gibt es einen möglichen Weg, wenn ich die setInput-Methode auf Variablen aus den Elementen anrufe, die ich früher instanziiert habe?

Antwort

1

Sie haben zwei Möglichkeiten:

  1. Führen Sie den ‚Input‘ an den Konstruktor als Argument und lassen Sie den Konstruktor seinen Wert verwenden, während die ‚Elemente‘ zu initialisieren.
  2. Haben private oder öffentliche Setter-Methoden für jedes Ihrer Elemente (so genannte Felder Ihrer Klasse) nehmen Sie "Eingabe" als Argument. Rufen Sie diese Setter von Ihrer 'setInput' Methode auf. Sehen Sie sich das folgende Beispiel an:

    öffentliche Klasse MyClass { Integer element1; String-Element2;

    öffentliche MyClass() { element1 = new Integer(); element2 = ""; }

    Privat setElement1 (Object-Eingang) {// Set element1 von Informationen in 'Eingang' enthalten this.element1 = ...

    }

    Privat setElement2 (Object-Eingang) { // Set element2 von Informationen in 'Eingang' enthalten this.element2 = ...

    } public setInput (Object-Eingang) { this.setElement1(); this.setElement2(); } }

+0

Können Sie Setter-Methoden erweitern? Das ist das erste Mal, dass ich von ihnen höre und es klingt genau nach dem, was ich brauche. Ich danke dir sehr. –

+0

Siehe meine Änderungen. Es gibt ein Beispiel für den Punkt 2. – VHS

+0

Ich weiß nicht, wie viele Elemente oder welche Elemente gesetzt werden müssen. Ich wünschte, es wäre so einfach. –

Verwandte Themen