Autohaus

[CODE
]for(Auto auto : pkwgarage) {
if (auto != null) {
result += auto.toString() + "\n";
}
}[/CODE]
Ich verstehe die for each Methode noch nicht so ganz. Sie funktioniert ja wie eine for Methode, nur dass sie eben keine Laufvariable besitzt ? Kann man sich das dann so vorstellen, dass sie so lange läuft bis jedes einzelne Feld abgesucht wurde oder bis jedes gefüllte feld abgesucht wurde ?
 
foreach ist keine Methode sondern eine Schleife. Es werden alle vorhandenen Einträge durchlaufen, im Fall eines Arrays auch die nicht belegten Felder. daher die Prüfung auf null. Bei einer Liste müsstest du das nicht machen.
 
Code:
public class Kunde {
 
  final Autohaus autohaus;
 
  public Kunde(final Autohaus autohaus) {
    this.autohaus = autohaus;
  }
 
  public void angeboteAnzeigen() {
    System.out.println(autohaus);
  }
}

Die Bedeutung von final glaube ich, habe ich einigermaßen verstanden. Könnte man final auch weglassen ? Also es würde auch ohne funktionieren oder ? This ist nötig damit klar ist, dass die Objektvariable gemeint ist oder ? Und bei der Methode wird ja das autohaus "ausgedruckt". Ist das ein Trick um Automatisch die toString Methode aufzurufen ?
Ergänzung ()

Ok ja for Schleife sorry, ok dann habe ich das auch verstanden.
 
cpuman990 schrieb:
Die Bedeutung von final glaube ich, habe ich einigermaßen verstanden. Könnte man final auch weglassen ? Also es würde auch ohne funktionieren oder ?
final kannst du weglassen, das hatte ich ja schon geschrieben. Es schadet aber nicht es drin zu lassen, weil du damit zum Ausdruck bringst, dass sich das autohaus des Kunden nie ändern wird bzw. darf. Parameter werden e.d.R. nie geändert und sollten es such nicht.

cpuman990 schrieb:
This ist nötig damit klar ist, dass die Objektvariable gemeint ist oder ?
Ja.

cpuman990 schrieb:
Und bei der Methode wird ja das autohaus "ausgedruckt". Ist das ein Trick um Automatisch die toString Methode aufzurufen ?
Ja. Der Trick ist, dass println() Object akzeptiert und dann das damit macht:
This method calls at first String.valueOf(x) to get the printed object's string value, ...
Wobei String.valueOf() wiederum ein Object aktzeptiert und dann (endlich):
... the value of obj.toString() is returned.
Würden diese Methoden Object nicht akzeptieren, würde das so nicht funktionieren.
 
Zurück
Oben