Haus(String adresse, Person besitzer, int anzahlWohneinheiten){
...
anzahlWohneinheiten = bewohner.length; // Welcher Variablen wird hier etwas zugewiesen?
...
}
Eine Überprüfung bewirkt aber noch nichts.in der methode doSomething wird überprüft ob x kleiner eins ist
Woher nimmst Du die Information, dass das Array eine Länge von 1 hätte?im Konstruktor haus ist x die Länge des arrays d.h. die Länge des Arrays ist eins
Hier wird dem x die Länge des Bewohnerarrays zugewiesen.
x soll die Anzahl der Wohneinheiten darstellen
Du kannst bewohner.length nichts zuweisen.Bewohner.length =anzahlWohneinheiten
Wir kommen in die richtige Richtung!Bewohner.length =anzahlWohneinheiten
Nein @jono man soll das Array im Konstruktor definieren.
Ihr habt eine Feldvariable oder Instanzvariable für ein Array deklariert, aber diese Variable ist null solange sie nicht initialisiert wird.Wir haben den Array schon oberhalb des Konstruktors definiert.
Dann bitte noch einmal anschauen, wie man ein Array deklariert und wie man es initialisiert. Was ihr habt ist nur eine Deklaration. Daher kommt auch die NullPointerException, wenn ihr darauf zugreift.Wir haben den Array schon oberhalb des Konstruktors definiert.
Ja, aber erst nachdem Du auf bewohner.length zugreifst.Ich habe es doch hier den Array initialisiert.Java:this.bewohner = new Familie[anzahlWohneinheiten];
Das wäre Deklaration und Initialisierung in einem. Schreib das mal getrennt. EDIT: Und warum int???Java:Familie[] Bewohner = new int [10]
Ich habe es doch hier den Array initialisiert.Java:this.bewohner = new Familie[anzahlWohneinheiten];
Worauf bezieht sich Dein Kommentar?Die Zeile löschen?
Haus(String adresse, Person besitzer, int anzahlWohneinheiten, Familie[] bewohner){
this.adresse=adresse;
this.besitzer=besitzer;
this.bewohner = new Familie[anzahlWohneinheiten];
anzahlWohneinheiten=bewohner.length;
if(anzahlWohneinheiten<1) {
anzahlWohneinheiten=1;
}
}
Ein paar Seiten vorher hast du etwas anderes behauptet.Das hatte ich schon die ganze Zeit
Ein paar Seiten vorher hast du etwas anderes behauptet.![]()
Dann ist Punkt 2 bei Dir auch kein Problem. Bleibt Punkt 1: was bringt es, wenn Du dem Parameter anzahlWohneinheiten die Länge des Arrays zuweist?Das hatte ich schon die ganze Zeit
Ja. Im Folgenden gehe ich von dem Code aus #182 aus. Sprich: die Frage bleibt, was es bringt, einem Parameter einen Wert zuzuweisen.auf die Zeile die vorher überhalb der Array Initialisierung stand
BTW: genau das ist das Prinzip: sich zu 100 % an die Aufgabenstellung halten. Die sind am Anfang so genau geschrieben, dass man sie fast 1:1 in Code übersetzen kann, wie man an diesem Beispiel sieht.Java:* Implementieren Sie einen Konstruktor mit adresse, besitzer und anzahlWohneinheit als Parameter. Haus(String adresse, Person besitzer, int anzahlWohneinheiten, Familie[] bewohner){ // Familie[]bewohner muss raus
Das erklärt Alles! Den Tipp hättest Du mir schon viel früher geben können! Ich hätte hier schon eine eigene Einspritzanlage in Betrieb haben können!Seit dem Java-Forum bin ich auf intravenös umgestiegen![]()
Alles Junkies hier.Das erklärt Alles! Den Tipp hättest Du mir schon viel früher geben können! Ich hätte hier schon eine eigene Einspritzanlage in Betrieb haben können!
Unsere Instanzvariablen heißen genau wie unsere Parameter @temiSchaut euch mal eure Instanzvariablen an. Gibt es da evtl. eine die auch so heißt, wie der Parameter?