~tine~ Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 Hallo, gibt es in Java die Möglichkeit, Übergabeparameter vorzubelegen, so dass der Parameter übergeben werden kann aber nicht muss? Also zum Beispiel so etwas in der Artpublic void beispiel(int zahl, boolean okay=false){}In C++ und PHP funktioniert das so, Eclipse bringt mir bei diesem Versuch allerdings immer die Fehlermeldung "Syntax error on tokens, delete these tokens". Ist das Setzen solcher Default-Werte in Java grundsätzlich nicht möglich oder mach ich dabei irgendwas falsch? tine
k4fu Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 gibts da nicht was mit konstruktor usw... du kannst doch verschiene konstruktoren anlegen. Konstruktor 1: Übergabeparamter: int zahl, boolean okay Konstruktor 2: Übergabeparamter: int zahl boolean okay=false kenne mich da ned so aus ;-)
Pinhead Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 So wie in C oder PHP funktioniert das nicht. Wenn du optionale Parameter haben möchtest dann sollte für jede Möglichkeit eine eigene Methodensignatur erstellt werden Beispiel public void beispiel(int zahl, boolean okay){ ... }; public void beispiel(int zahl){ ... okay = false; ...}; public void beispiel() {... zahl = 0; okay=false; ... };
k4fu Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 So wie in C oder PHP funktioniert das nicht. Wenn du optionale Parameter haben möchtest dann sollte für jede Möglichkeit eine eigene Methodensignatur erstellt werden Beispiel public void beispiel(int zahl, boolean okay){ ... }; public void beispiel(int zahl){ ... okay = false; ...}; public void beispiel() {... zahl = 0; okay=false; ... }; naja das sagte ich ja auch... oder nicht? ^^
Pinhead Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 ^^Naja du sprachst von konstruktoren. Ein Konstruktor ist eine Methode die aufgerufen wird wenn ein Objekt erzeugt wird. Die Threaderstellerin suchte aber nach einer Möglichkeit Methoden mit Standardparametern aufzurufen.
k4fu Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 hab das aber so gemeint, als ich das geschrieben habe: Konstruktor 1: Übergabeparamter: int zahl, boolean okay Konstruktor 2: Übergabeparamter: int zahl boolean okay=false public void beispiel(int zahl, boolean okay){ ... }; public void beispiel(int zahl){ ... okay = false; ...}; aber konstrutkoren sind doch ähnlich aufgebaut...
~tine~ Geschrieben 22. Juni 2006 Autor Geschrieben 22. Juni 2006 Ja, momentan habe ich für jede Möglichkeit eine eigene Methode. Hätte es halt gern zusammengeschmissen. Aber dann muss ich es wohl so lassen. Trotzdem Danke für eure Hilfe tine
Jaraz Geschrieben 22. Juni 2006 Geschrieben 22. Juni 2006 Ja, momentan habe ich für jede Möglichkeit eine eigene Methode. Hätte es halt gern zusammengeschmissen. Aber dann muss ich es wohl so lassen. Trotzdem Danke für eure Hilfe tine Für jede Aufrufmöglichkeit brauchst du schon wie geschrieben eine eigene Signatur. Die Logik kannst du aber bündeln. //Methode mit Logik public void beispiel(int zahl, boolean okay){ //mach was } //überladene Methodensignatur für Defaultwert public void beispiel(int zahl){ this.beispiel(zahl, false); } Gruß Jaraz
~tine~ Geschrieben 22. Juni 2006 Autor Geschrieben 22. Juni 2006 An die Möglichkeit hatte ich noch gar nicht gedacht. Danke für den Tipp tine
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden