Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Autohaus
- Ersteller cpuman990
- Erstellt am
NemesisFS
Lt. Commander
- Registriert
- Sep. 2008
- Beiträge
- 1.294
cpuman990 schrieb:ok, ich verstehe gerade gar nichts mehr. Wie muss ich das dort reinschreiben. Ein Autohaus-objekt erstellen ?
Ergänzung ()
Ah, autohaus1 erstellen und das dann eintippen ?![]()
Genau.
Ergänzung ()
Wenn ich jetzt die Methode des Kunden aufrufe dann erhalte ich wieder etwas wie: @xxjjeie
Ergänzung ()
Was muss noch an der Methode verändert werden ?
Welche Methode rufst du denn auf? Wenn du von printCurrentOffers sprichst hast du eventuell vergessen den dritten codeblock aus #51 in die Autohaus Klasse zu übernehmen?
EDIT:
Code Einbettungen macht man über \[code\]<...>\[\/code\].
Das System.out.println() nicht automatisch die toString Methode aufruft irritiert mich gerade, in einem kurzen Test funktioniert das.
Zuletzt bearbeitet:
NemesisFS
Lt. Commander
- Registriert
- Sep. 2008
- Beiträge
- 1.294
cpuman990 schrieb:Waren nicht # die code tags ? Also liegt das Problem im Autohaus ?
Es könnte sein, dass du dich im Namen der Autohaus.toString Methode verschrieben hast.
NemesisFS
Lt. Commander
- Registriert
- Sep. 2008
- Beiträge
- 1.294
Ah. Die NullpointerException fliegt vermutlich weil das autohaus nicht voll ist, mein Fehler (das wäre ein weiterer Vorteil einer Liste).
Du musst also beim iterieren testen ob das aktuelle Element null ist, oder die Schleife umschreiben sodass sie nur bis zu denem i iteriert.
Du musst also beim iterieren testen ob das aktuelle Element null ist, oder die Schleife umschreiben sodass sie nur bis zu denem i iteriert.
Code:
public String toString() {
String result = "";
for(Auto auto : pkwGarage) {
if (auto != null) {
result += auto.toString() + "\n";
}
}
return result;
}
Zuletzt bearbeitet:
(Alternative hinzugefügt)
ok Danke! Jetzt muss ich die quellcodes aber Noch verstehen
.
Was ist final , wie geht es, dass diese Methode ohne Objekt funktioniert, bzw. mit einem Objekt, das erst noch erstellt wird ?
Was steht zwischen den "" und was ist hier for ( ja keine wiederholung mit fester Anzahl)
Und wäre es noch möglich meine Methode autoAusgeben:
Könnte ich diese irgendwie in Kunde referenzieren, ohne ein Objekt zu erstellen mit new.
oder könnte ich vielleicht die Methode autoAusgeben in Kunde schreiben ?
Das Problem ist, dass die Quellcodes einfach zu weit entfernt sind

Code:
public class Kunde {
final Autohaus autohaus;
public Kunde(final Autohaus autohaus) {
this.autohaus = autohaus;
}
public void angeboteAnzeigen() {
System.out.println(autohaus);
}
}
Code:
public String toString() {
String result = "";
for(Auto auto : pkwgarage) {
if (auto != null) {
result += auto.toString() + "\n";
}
}
return result;
}
Und wäre es noch möglich meine Methode autoAusgeben:
Code:
public void autoAusgeben(){
if(j==i){System.out.println(pkwgarage[j]);}
for(j = 0; j<i;j++){
System.out.println(pkwgarage[j].toString());
}
Ergänzung ()
oder könnte ich vielleicht die Methode autoAusgeben in Kunde schreiben ?
Ergänzung ()
Das Problem ist, dass die Quellcodes einfach zu weit entfernt sind
Also der Reihe nach:
final bezeichnet Werte, die im Nachhinein nicht mehr veränderbar sind. Sie sind also final.
Das ist dein Konstruktor. Hier übergibst du beim erstellen eines neuen Kunden-Objektes ein Autohaus.
Alle Methoden in dieser Klasse können mit jedem erstellen Objekt aufgerufen werden. Hast du also einen neuen Kunden erstellt, kann dieser nach außen hin auf alle public-Methoden der Kunde-Klasse zugreifen. Das autohaus in den Klammern des System.out.println(); hast du im Konstruktor übergeben.
Die leeren Anführungzeichen weisen einfach auf einen leeren String hin. Wenn du einen neuen String erstellst, musst du auch einen Inhalt für diesen angeben. Hier wird result erstellt, der erstmal leer, also "" sein soll. Es ist ganz dir überlassen, was du in die Anführungszeichen reinschreibst.
for ist eine Schleife. for each beschreibt es besser. Diese Schleife nimmt sich jedes Auto-Objekt des Arrays pkwgarage und führt damit den Code aus, der im Body der for-Schleife steht.
final bezeichnet Werte, die im Nachhinein nicht mehr veränderbar sind. Sie sind also final.
Code:
public Kunde(final Autohaus autohaus){
this.autohaus = autohaus;
}
Code:
public void angeboteAnzeigen() {
System.out.println(autohaus);
}
Code:
public String toString() {
String result = "";
for(Auto auto : pkwgarage) {
if (auto != null) {
result += auto.toString() + "\n";
}
}
return result;
}
for ist eine Schleife. for each beschreibt es besser. Diese Schleife nimmt sich jedes Auto-Objekt des Arrays pkwgarage und führt damit den Code aus, der im Body der for-Schleife steht.
Zuletzt bearbeitet:
NemesisFS
Lt. Commander
- Registriert
- Sep. 2008
- Beiträge
- 1.294
final ist ein modifier der verhindert, dass dieses Feld geändert wird wenn es einmal gesetzt ist. Es ist guter Stil das überall zu verwenden wo es möglich ist, dadurch verhindert man Fehler bei denen Felder fälschlicherweise gesetzt werden. Man muss sich bei jedem Feld gedanken machen: "Macht es Sinn, das der Wert später ein anderer ist?".cpuman990 schrieb:ok Danke! Jetzt muss ich die quellcodes aber Noch verstehen.
Was ist final , wie geht es, dass diese Methode ohne Objekt funktioniert, bzw. mit einem Objekt, das erst noch erstellt wird ?Code:...
Welche Anführungszeichen meinst du? Die ersten sind leer, das erstellt dir nur den empty String sodass man später weitere Teile anhängen kann. Das "\n" ist ein newline Symbol. Das sorgt dafür, dass bei der Ausgabe später eine neue Zeile anfängt.Was steht zwischen den "" und was ist hier for ( ja keine wiederholung mit fester Anzahl)Code:...
Die for-Schleife ist eine sogenannte foreach Schleife. Die ist universaler einsetzbar und erlaubt weniger Fehler, wie zum Beispiel dass man über die Arraygrenzen wegiteriert. Die gleiche Schleife könntest du auch benutzen wenn du eine andere Datenstruktur verwendest, zum Beispiel Set, List.
Und wäre es noch möglich meine Methode autoAusgeben:
Könnte ich diese irgendwie in Kunde referenzieren, ohne ein Objekt zu erstellen mit new.Code:...
Ergänzung ()
oder könnte ich vielleicht die Methode autoAusgeben in Kunde schreiben ?
Ergänzung ()
Das Problem ist, dass die Quellcodes einfach zu weit entfernt sind![]()
Ich verstehe nicht ganz was du meinst. Diese Methode entspricht doch der angeboteAnzeigen Methode oder nicht?
EDIT: Fabiansen hat es besser erklärt mMn. Zu "[...] wie geht es, dass diese Methode ohne Objekt funktioniert, bzw. mit einem Objekt, das erst noch erstellt wird ?":
Jede Funktion wird definiert ohne dass die dazugehörigen Daten existiert. Wenn ich eine Methode int summe(int x, int y) schreibe weiß ich ja auch nicht welche Werte x und y haben, ich kenne nur ihren Typ. Analog funktioniert das im Kunde-Konstruktor, ich weiß dass ein Autohaus übergeben wird, was das für ein Autohaus ist weiß ich erstmal nicht.
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 90
- Aufrufe
- 20.852
- Antworten
- 2
- Aufrufe
- 2.400
- Antworten
- 59
- Aufrufe
- 7.465
- Antworten
- 3
- Aufrufe
- 4.816
- Antworten
- 3
- Aufrufe
- 1.898