Parameterübergabe - identische Funktionen, aber falsche Funktion

Hallo zusammen,

ich stehe gerade vor einem Problem und verstehe nicht wirklich, wo das Problem liegt.

Ich habe zwei Funktionen:

Java:
	public void erzeugeNeueBuchung(int autoId, int kundenId, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade) {
		Buchung neu = new Buchung(autoId, kundenId, weitereFahrer,
				umzugsZubehoer, einwegbenutzung, upgrade);
		this.buchungsListe.add(neu);
		this.autoListe.get(autoId - 1).entliehen = true;
	}
	
	public void erzeugeNeueBuchung(int autoId, int kundenId, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade, long zeit) {
		Buchung neu = new Buchung(autoId, kundenId, zeit, weitereFahrer,
				umzugsZubehoer, einwegbenutzung, upgrade);
		this.buchungsListe.add(neu);
		this.autoListe.get(autoId - 1).entliehen = true;
	}
Die untere Funktion überlagert ja die obere, EIGENTLICH dürfte es da ja kein Problem geben, weil sie ja eine andere Signatur hat, oder?

Auf jeden Fall nutze ich für manuelles Anlegen von Buchungen die untere Funktion, dabei werden aber die Parameter falsch übergeben.
Java:
		this.erzeugeNeueBuchung(3, 1, true, false, false, false, 1325448534433l);
		this.erzeugeNeueBuchung(2, 4, false, false, false, false, 1325447934433l);
Das true taucht in meinen Paramtern nie auf, wenn ich Testwerte eingebe. Nutze ich jedoch die obere Funktion, dann tauchen sie auf.

Übersehe ich etwas?

Viele Grüße,
schattenjaeger
 

Schandro

Top Contributor
Liegt vermutlich an der Klasse Buchung, poste die mal. Oder geb dir einfach die Parameter aus am Anfang der erzeugeBuchung-Methoden, dann wirst du sehen das das true in der Methode erzeugeBuchung ankommt.
 
Okay, hier die Klasse:

Java:
package autovermietung;

import java.util.Calendar;
import java.util.Date;

public class Buchung {
	private boolean bezahlt = false;
	protected int bestellungsId;
	protected int autoId;
	protected int kundenId;
	protected boolean weitereFahrer;
	protected boolean umzugsZubehoer;
	protected boolean upgrade; // Bei Upgrade auf nächsthöhere Klasse
	protected boolean einwegbenutzung;
	Calendar buchungsZeit = Calendar.getInstance();
	
	
	private static int bestellungsIdZaehler = 0;
	
	public Buchung(int autoId, int kundenId, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade) {
		this.bestellungsId = generiereBestellungsId();
		this.autoId = autoId;
		this.kundenId = kundenId;
		this.umzugsZubehoer = umzugsZubehoer;
		this.einwegbenutzung = einwegbenutzung;
		this.weitereFahrer = weitereFahrer;
		this.upgrade = upgrade;
		buchungsZeit.setTimeInMillis(System.currentTimeMillis());
		System.out.println("Die Buchung wurde erfolgreich angelegt.");
	}
	
	public Buchung(int autoId, int kundenId, long zeit, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade){
		this.bestellungsId = generiereBestellungsId();
		this.autoId = autoId;
		this.kundenId = kundenId;
		buchungsZeit = Calendar.getInstance();
		buchungsZeit.setTimeInMillis(zeit);
		System.out.println("Die Buchung wurde erfolgreich angelegt.");
	}
}
Hab meine Javadoc-Kommentare und unwichtige/ungenutzte Methoden rausgenommen.
 

Schandro

Top Contributor
Der Grund für deinen Fehler ist, das im unteren Konstruktor von Buchung nicht alle Parameter in die Membervariablen geschrieben werden. Das hier:
Java:
        this.umzugsZubehoer = umzugsZubehoer;
        this.einwegbenutzung = einwegbenutzung;
        this.weitereFahrer = weitereFahrer;
        this.upgrade = upgrade;
fehlt komplett

generell würde ich dir aber empfehlen mit Konstruktoren-Verkettung zu arbeiten, spart Tipparbeit und genau den Bug auf den zu gerade gestossen bist.
 
Wenn Dummheit weh tun würde, dann würde ich jetzt schreiend am Boden liegen.

Das habe ich TOTAL übersehen!
Vielen Dank!


Konstruktoren-Verkettungen? Wie geht das?
 
Zuletzt bearbeitet:

Schandro

Top Contributor
Durch Konstruktoren-Verkettung kann ein Konstruktor einen anderen Konstruktor derselben Klasse aufrufen. Das Schlüsselwort dafür ist
Code:
this
mit den Parametern dahinter in Klammern. Bei "Buchung" würde das so aussehen:
Java:
    public Buchung(int autoId, int kundenId, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade) {
		this(autoId, kundenId, System.currentTimeMillis(), weitereFahrer, umzugsZubehoer, einwegbenutzung, upgrade);
    }
    
    public Buchung(int autoId, int kundenId, long zeit, boolean weitereFahrer, boolean umzugsZubehoer, boolean einwegbenutzung, boolean upgrade){		
        this.autoId = autoId;
        this.kundenId = kundenId;
		
        buchungsZeit = Calendar.getInstance();
        buchungsZeit.setTimeInMillis(zeit);
		
        this.weitereFahrer = weitereFahrer;
        this.umzugsZubehoer = umzugsZubehoer;
        this.einwegbenutzung = einwegbenutzung;
        this.upgrade = upgrade;
		
        this.bestellungsId = generiereBestellungsId();
        System.out.println("Die Buchung wurde erfolgreich angelegt.");
    }

Pro Konstruktor darf
Code:
this
allerdings nur 1x als allererstes aufgerufen werden.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
M Methode Objekt als Parameterübergabe Java Basics - Anfänger-Themen 6
B Parameterübergabe in main Java Basics - Anfänger-Themen 1
E Erste Schritte Parameterübergabe - Prozentrechner Java Basics - Anfänger-Themen 5
S Methoden Parameterübergabe Java Basics - Anfänger-Themen 4
S Parameterübergabe zwischen zwei Programme Java Basics - Anfänger-Themen 4
Joew0815 Parameterübergabe Java Basics - Anfänger-Themen 3
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
K Parameterübergabe im Terminal(Linux) Java Basics - Anfänger-Themen 8
V Parameterübergabe von Methoden verstehen Java Basics - Anfänger-Themen 13
P Java-Konsolenanwendung mit Parameterübergabe (Windows) Java Basics - Anfänger-Themen 3
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
H Parameterübergabe Java Basics - Anfänger-Themen 4
X Parameterübergabe Java Basics - Anfänger-Themen 6
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
E Einfache Frage zur Parameterübergabe in Methoden Java Basics - Anfänger-Themen 8
A Parameterübergabe zwischen statischen und nicht statischen Klassen Java Basics - Anfänger-Themen 6
L Parameterübergabe Java Basics - Anfänger-Themen 6
K Parameterübergabe Java Basics - Anfänger-Themen 3
W Parameterübergabe Java Basics - Anfänger-Themen 9
Y Probleme mit Parameterübergabe Java Basics - Anfänger-Themen 8
O Parameterübergabe mit RadioButtons Java Basics - Anfänger-Themen 2
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
G Parameterübergabe über mehrer Klassen Java Basics - Anfänger-Themen 2
S parameterübergabe Java Basics - Anfänger-Themen 5
M Parameterübergabe an *.jar Java Basics - Anfänger-Themen 5
M Parameterübergabe an externe JAR-Datei? Java Basics - Anfänger-Themen 2
B Frage zu Code (Parameterübergabe) Java Basics - Anfänger-Themen 14
S Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
B printf() mit Parameterübergabe? Java Basics - Anfänger-Themen 2
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
G Java Applikation ein Programm mit Parameterübergabe starten Java Basics - Anfänger-Themen 3
V doPost parameterübergabe funktioniert nicht. Java Basics - Anfänger-Themen 5
G Problem bei Parameterübergabe Java Basics - Anfänger-Themen 2
T Runtime.getRuntime().exec mit parameterübergabe Java Basics - Anfänger-Themen 16
roflomfg Parameterübergabe in in "*.jar" files möglich? Java Basics - Anfänger-Themen 8
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
D probleme bei der Parameterübergabe Java Basics - Anfänger-Themen 12
M Parameterübergabe Java Basics - Anfänger-Themen 7
J Nested Layouts - Parameterübergabe bei ActionListener Java Basics - Anfänger-Themen 2
M Parameterübergabe! Java Basics - Anfänger-Themen 4
M Probleme bei Parameterübergabe in Rekursion Java Basics - Anfänger-Themen 5
K Parameterübergabe bei quickSort Java Basics - Anfänger-Themen 6
G Parameterübergabe bei Runtime.getRuntime().exec Java Basics - Anfänger-Themen 16
J parameterübergabe arraylist Java Basics - Anfänger-Themen 9
D args und parameterübergabe Java Basics - Anfänger-Themen 8
D Parameterübergabe mit JSP Java Basics - Anfänger-Themen 2
I Parameterübergabe beim Aufruf in der Kommandozeile Java Basics - Anfänger-Themen 4
B Parameterübergabe und return; Java Basics - Anfänger-Themen 3
F Performanceverlust bei ständiger Parameterübergabe? Java Basics - Anfänger-Themen 4
K Parameterübergabe Java Basics - Anfänger-Themen 5
R Parameterübergabe Java Basics - Anfänger-Themen 13
H Parameterübergabe zwischen einzelnen Funktionen Java Basics - Anfänger-Themen 4
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
T Variablen fast identische Setter Java Basics - Anfänger-Themen 14
B Erste Schritte Bisektion mit zwei Funktionen? Java Basics - Anfänger-Themen 1
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
A Variablen Definitionen zu Codes und Funktionen. Java Basics - Anfänger-Themen 3
Z If Funktionen, GUI, Fachklasse Java Basics - Anfänger-Themen 25
H Frage zu Methoden/Funktionen Java Basics - Anfänger-Themen 3
M Vererbung Funktionen in Basisklasse deklarieren Java Basics - Anfänger-Themen 4
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
J Funktionen Java Basics - Anfänger-Themen 9
S Klassen Class mit Funktionen importieren Java Basics - Anfänger-Themen 1
B Funktionen von außen aufrufen Java Basics - Anfänger-Themen 1
M Klassen Funktionen aus anderen Klassen benutzen Java Basics - Anfänger-Themen 3
G funktionen der super-klasse von der super-klasse Java Basics - Anfänger-Themen 6
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
K Ungenauigkeit beim Zeichnen von Funktionen Java Basics - Anfänger-Themen 6
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
A ganzrationale funktionen auswerten. Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
S Funktionen zeichnen Java Basics - Anfänger-Themen 2
K Methoden Funktionen und Prozeduren Java Basics - Anfänger-Themen 11
R Rekursionen und Funktionen ... Java Basics - Anfänger-Themen 8
J Funktionen automatisiert aufrufen Java Basics - Anfänger-Themen 5
B Funktionen programmieren, die im Hintergrund aktiv sind Java Basics - Anfänger-Themen 2
O Funktionen dateiübergreifend mit Packages Java Basics - Anfänger-Themen 6
M Methoden Funktionen Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
B Ausgabe problem in Funktionen Java Basics - Anfänger-Themen 6
L Hat java keine virtuellen funktionen?? Java Basics - Anfänger-Themen 6
A Funktionen und Arrays Java Basics - Anfänger-Themen 2
C funktionen nur static? Java Basics - Anfänger-Themen 6
M MouseAdapter - auf Funktionen zugreifen Java Basics - Anfänger-Themen 13
L Funktionen addRow und deleteRow Java Basics - Anfänger-Themen 6
D Mathematische Funktionen Zeichnen Java Basics - Anfänger-Themen 2
D Variableninhalt über mehrere Funktionen ? Java Basics - Anfänger-Themen 3
Out.println Funktionen Java Basics - Anfänger-Themen 7
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
B Mathematische Funktionen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben