funktionierdoch
Cadet 2nd Year
- Registriert
- Dez. 2018
- Beiträge
- 19
Hi,
in einer Klasse "Weihnachtsmann" möchte ich auf das Array bzw. die Arraylänge einer Klasse "Schlitten" zugreifen können. Das wird mir nur erlaubt, wenn ich in der Klasse Schlitten das Attribut Rentier[] rentiere; nicht mehr auf private setze ( laut Aufg.stellung muss ich das tun!).
Ich wollte in der for-Schleife auf jedes einzelne Rentier zugreifen, jedoch lässt er das nicht zu. Ist meine Schreibweise in dem Fall korrekt? Habe ich evtl. einen Strukturfehler? Ich bedanke mich für jeden Schubser in die richtige Richtung.
in einer Klasse "Weihnachtsmann" möchte ich auf das Array bzw. die Arraylänge einer Klasse "Schlitten" zugreifen können. Das wird mir nur erlaubt, wenn ich in der Klasse Schlitten das Attribut Rentier[] rentiere; nicht mehr auf private setze ( laut Aufg.stellung muss ich das tun!).
Java:
package de.weihnachten;
import de.weihnachten.Schlitten;
public class Weihnachtsmann extends WeihnachtsObjekt {
private double futtervorrat;
private Schlitten schlitten;
public Weihnachtsmann(double futtervorrat, Schlitten schlitten) {
this.futtervorrat = futtervorrat;
this.schlitten = schlitten;
}
public boolean istFertig() {
// (Oder return this.schlitten.istLeer();)
boolean geschenkeAusgeliefert = false;
if(this.schlitten.istLeer()) {
return true;
} else {
return geschenkeAusgeliefert;
}
}
public boolean kannNochFuettern() {
boolean genugFutter = false;
double gesamtHunger = 0;
// ES GEHT UM DIESEN TEIL! schlitten.rentiere.length funktioniert nicht!
for(int i = 0; i < this.schlitten.rentiere.length; i++) {
}
if(futtervorrat - this.schlitten.getRentier.getHunger(this.schlitten.getGewicht()) > 0) {
genugFutter = true;
}
return genugFutter;
}
Java:
package de.weihnachten;
import de.weihnachten.Rentier;
import de.weihnachten.Geschenk;
public class Schlitten extends WeihnachtsObjekt {
private Rentier[] rentiere;
private Geschenk[] geschenke;
public Schlitten(Rentier[] rentiere, Geschenk[] geschenke) {
this.rentiere = rentiere;
this.geschenke = geschenke;
}
public Geschenk getNaechstesGeschenk () {
Geschenk[] temp = new Geschenk[this.geschenke.length];
temp[0] = this.geschenke[0];
for(int i = 1; i < temp.length; i++) {
temp[i] = this.geschenke[i];
}
for(int i = 0; i < temp.length; i++) {
this.geschenke[i] = temp[i];
}
return temp[0];
}
public int getGewicht() {
int gGewicht = 0;
for(int i = 0; i < this.geschenke.length; i++) {
gGewicht += this.geschenke[i].getGewicht();
}
return gGewicht;
}
public boolean kannFliegen(Rentier[] rentiere) {
if(100*Math.sqrt(rentiere.length) > getGewicht()) {
return true;
} else {
return false;
}
}
public boolean istLeer() {
if(geschenke.length == 0){
return true;
}
return false;
}
public int getAnzahlRentiere() {
int zaehler = 0;
for(int i = 0; i < rentiere.length; i++) {
zaehler++;
}
return zaehler;
}
public int getAnzahlGeschenke() {
int zaehler = 0;
for(int i = 0; i < geschenke.length; i++) {
zaehler++;
}
return zaehler;
}
public Rentier getRentier(int index) {
if(index < 0 && index > getAnzahlRentiere()) {
System.out.println("Index muss zwischen 0 und der Anzahl der" +
" Rentiere sein!");
return null;
}
return rentiere[index];
}
public static void main(String[] args) {
}
}
Ich wollte in der for-Schleife auf jedes einzelne Rentier zugreifen, jedoch lässt er das nicht zu. Ist meine Schreibweise in dem Fall korrekt? Habe ich evtl. einen Strukturfehler? Ich bedanke mich für jeden Schubser in die richtige Richtung.