Hilfe mit dem Code?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Falls kein alter übergeben wird,

Also ein Alter als Zahl wird immer übergeben, sonst steht wahrscheinlich in alter== 0 drinnen.

Schreib eine

Methode
private int alter25(int alter2check){

return (alter2check<=0)?25:alter2check;
}

Ändere nun überall ...+ alter +...
 in ...+ alter25(alter) +...
Oder vor deiner Ausgabezeile
alter=alter25(alter) bzw. alter=(alter<=0)?25:alter;

Das ist zwar mega hässlich aber es sollte funktionieren, Programm aus der Hüfte geschossen nicht am Computer eingetippt, nur gerade einfach so rein gesprochen!

Woher ich das weiß:Studium / Ausbildung – Dipl. Math., BOS, Elektronik/Elektriker, Lebenserfahrung

Im Gegensatz zu C++, Python, Ada und anderen bietet Java nicht die Möglichkeit, für Methodenparameter Defaultwerte direkt zu definieren. Man hilft sich mit der Definition zusätzlicher Methoden, in denen

  • die Parameter völlig fehlen, für die Defaultwerte zu verwenden sind
  • eine andere Methode aufgerufen wird, die einen vollständigen Parametersatz hat. Im Aufruf werden dann die Defaultwerte angegeben.

Wenn du ergänzt:

    public static void Person(String name) {
        Person(name, 25);
    }

kannst du schreiben

Person("Hans")

und erhältst diese Ausgabe:

Hans ist 25 Jahre alt.

Wenn man dieses Schema konsequent anwenden wollte, wäre die Methode

    public static void Person(String name, String wohnort) {
        System.out.println(name + " wohnt in " + wohnort);
    } 

so zu ändern:

    public static void Person(String name, String wohnort) {
        Person(name, 25, wohnort);
    } 

Mit Konstruktoren geht das auch, allerdings muss der Aufruf des allgemeineren Konstruktors mit dem Schlüsselwort this geschehen. Für deine Klasse sähe das so aus:

   

    /*   allgemeiner Konstruktor   */
    UeberladeneMethoden (String name, int alter) {
        System.out.println(name + " ist "
           + alter + " Jahre alt.");
    }

    /*  Spezieller Konstruktor mit Defaultwert für alter  */
    UeberladeneMethoden (String name) {
        this(name, 25);
    }

Der Aufruf

new UeberladeneMethoden ("Johanna");

liefert jetzt:

Johanna ist 25 Jahre alt.
Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler

In deinem Fall wird ja immer ein Alter übergeben (sonnst würde dein Programm nicht starten). Aber du kannst einen Wert nehmen wie -1 der immer übergeben wird wenn du „kein Alter“ hast und mit if-Abfragen dann nach dem Wert fragen und dann alter=25 in der Methode aufrufen.

Woher ich das weiß:Hobby – Ich beschäftige mich gerne mit der Informatik 😉