Problem beim Returnwert einer Methode

Status
Nicht offen für weitere Antworten.

Thesi

Mitglied
Hi, ich bin blutiger Anfänger wenn es um das Programmieren geht und nun hab ich ein Problem mit einer Metode.
Ich bekomme ständig den Fehler, dass diese Methode einen Wert des Types Human zurückgeben muss.
Ich dachte eigentlich, dass sie das auch tut, aber anscheinend nicht.
Nur ich finde meinen Fehler nicht.
Könnt ihr mir vielleicht helfen.
Es liegt wohl an den Returnanweisungen: return girl/boy. Die werden anscheinend nicht anerkannt, aber warum?

Java:
public Human giveBirth(Male father, String nameGirl, String nameBoy) {
		if (father == null) {
			return null;
		} else {
			boolean GeschlechtKind = randomBool();
			if (GeschlechtKind == false) {
				this.father = father;
				Human girl = new Female(nameGirl, age = 0);
				return girl;
			}
			if (GeschlechtKind == true) {
				this.father = father;
				Human boy = new Male(nameBoy, age = 0);
				return boy;
			}
		}
	}


Wie kann ich mir den Jungen/das Mädchen zurückgeben lassen?


Gruß
Thesi
 
M

maki

Gast
Wenn keine der if Abfragen zutrifft, machst du auch kein return, schon mal aufgefallen?
Du musst sicherstellen dass immer etwas zurückgegeben wird.
 

Thesi

Mitglied
Oh man bin ich blind :oops:
So ein kleiner dummer Fehler und ich such da ne halbe Ewigkeit dran rum.
Vielen Dank!
So geht es jetzt :)

Java:
public Human giveBirth(Male father, String nameGirl, String nameBoy) {
        if (father == null) {
            return null;
        } else {
            boolean GeschlechtKind = randomBool();
            if (GeschlechtKind == false) {
                this.father = father;
                Human girl = new Female(nameGirl, age = 0);
                return girl;
            }
            if (GeschlechtKind == true) {
                this.father = father;
                Human boy = new Male(nameBoy, age = 0);
                return boy;
            }
            else {
                return null;
           }
        }
    }

Gruß
Thesi
 

ARadauer

Top Contributor
alternativ:
Java:
if (GeschlechtKind == false) {
                this.father = father;
                Human girl = new Female(nameGirl, age = 0);
                return girl;
            }else{
                this.father = father;
                Human boy = new Male(nameBoy, age = 0);
                return boy;
            }

//wenns nicht false ist, kanns nur true sein ;-)
 
S

SlaterB

Gast
Denkanstoß:
Java:
    public Human giveBirth(Male father, String nameGirl, String nameBoy)
    {
        if (father == null) {
            return null;
        }

        this.father = father;
        age = 0; // welches age wird denn da auf 0 gesetzt?
        boolean weiblich = randomBool();
        if (weiblich) {
            return new Female(nameGirl, age);
        }
        return new Male(nameBoy, age);
    }
zumindest
> boolean weiblich
solltest du übernehmen, und dann ein if + vielleicht ein else,
if (true) {
}
if (false) {

} else {

}
ist ganz schlimm bei einem boolean der nur true oder false sein kann
 

Thesi

Mitglied
@SlaterB:

Es soll das age von dem Baby sein.
Aber wenn du so frägst wird es wohl ein anderes age sein ??

Kann man das
if (GeschlechtKind == true)
nicht einfach stehen lassen und wieso ist das bei einem boolean ganz schlimm?
 
M

maki

Gast
if (GeschlechtKind == true)
Ganz schlimm ;)

Einerseits widerspricht es de Java CodeKonventionen (if (geschlechtKind == true) wäre besser), andererseits macht es doch gar keinen ersichtlichen Sinn eine boolean Variable Geschlecht zu nennen, woher sollte der Leser wissen das der Wert true für weiblich steht???
Da ist SlaterBs Vorschlag schon um längen besser ;)
 

Thesi

Mitglied
@maki:

Ah ok, jetzt verstehe ich.
Man soll so schreiben, dass es auch andere leicht nachvollziehen können und da ist es dann z.b. leichter nachzuvollziehen, wenn boolean weiblich ist, weil das kann ja nur richtig sein oder falsch und meine Variable könnte ja auch einen String enthalten.

Aber auf sowas achte ich zur Zeit einfach noch nicht. Ich bin froh, wenn das Programm tut was es soll ^^
 
M

maki

Gast
Aber auf sowas achte ich zur Zeit einfach noch nicht. Ich bin froh, wenn das Programm tut was es soll ^^
Bald wirst du froh sein wenn du verstehst was der Code machen soll den du geschrieben hast :)

Je früher du auf so etwas achtest umso früher schreibst du sauberen Code ;)

Es ist sehr einfach Code zu schreiben den ein Compiler versteht.. schwierig ist es Code zu schreiben, den Menschen verstehen.
 
S

SlaterB

Gast
Es soll das age von dem Baby sein.
Aber wenn du so frägst wird es wohl ein anderes age sein ??
das Baby bekommt sicherlich 0 als Parameter und speichert das dann vielleicht in seinen Variablen (wie im echten Leben ;) )

aber wo steht die Methode, in der Klasse Human? ist das aktuelle Objekt die Mutter?
dann wird deren Age auch auf 0 gesetzt und der Vater der Mutter geändert,
das Baby erhält keine Information, wer sein/ ihr Vater oder Mutter ist
 

Manuh

Mitglied
Alternativ könntest du das

Java:
if(GeschlechtKind==true)

auch einfach als

Java:
if(GeschlechtKind)

schreiben, denn bei einer boolean prüft er dann einfach ob sie dann wahr ist.

Anders bei

Java:
if(!GeschlechtKind)

dann wird die Bedingung nur bei false ausgeführt

Gruß
Manuh
 

Thesi

Mitglied
Momentan hab ich noch genug Probleme einen Code zu schreiben, der das tut was er soll...
Besonders jetzt wo wir Klassen haben und nicht mehr alles in main ist. Da blick ich noch nicht so durch, wie ich dann auf die manche Attribute der verschiedenen Variablen zugreifen kann....
 

Thesi

Mitglied
das Baby bekommt sicherlich 0 als Parameter und speichert das dann vielleicht in seinen Variablen (wie im echten Leben ;) )

aber wo steht die Methode, in der Klasse Human? ist das aktuelle Objekt die Mutter?
dann wird deren Age auch auf 0 gesetzt und der Vater der Mutter geändert,
das Baby erhält keine Information, wer sein/ ihr Vater oder Mutter ist

Die Methode steht in der Klasse Female, neben der es noch Male und Human gibt.
Sowohl Male als auch Female sind Unterklassen von Human.

Edit:

Jetzt weis ich auch was du mit dem age meintest. Ich hab das Alter der Mutter auch wunderschön auf 0 gesetzt.
Habs aber jetzt ausgebessert.
Danke für den Tipp SlaterB!!
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
B Gleicher Prozess starten und stoppen (Problem beim Stoppen) Java Basics - Anfänger-Themen 5
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
F Input/Output Problem beim einlesen eines Strings Java Basics - Anfänger-Themen 3
J Problem beim auslesen von Int Wert aus YML-Datei Java Basics - Anfänger-Themen 6
P Problem beim Abschluss im Kompositum Java Basics - Anfänger-Themen 3
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
J Problem beim ausführen in cmd.exe Java Basics - Anfänger-Themen 4
J Variablen Problem beim einlesen einer Zahl Java Basics - Anfänger-Themen 7
A Problem beim Compilieren Java Basics - Anfänger-Themen 11
J Problem beim Fenster Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
M Problem beim Compilieren Java Basics - Anfänger-Themen 14
Maxim6394 Problem beim Abspielen von Sounds Java Basics - Anfänger-Themen 8
S Problem beim ersten compilieren überhaubt Java Basics - Anfänger-Themen 43
H Problem beim lesen des InputStreams von einem Subprozess Java Basics - Anfänger-Themen 4
Luk10 Problem beim .jar Datei erstellen Java Basics - Anfänger-Themen 19
L Problem beim Ausführen Java Basics - Anfänger-Themen 40
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
E Problem beim Programmieren eines Kartenspiels Java Basics - Anfänger-Themen 3
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
M Problem beim compilieren Java Basics - Anfänger-Themen 6
JAVAnnik problem beim lvl laden Java Basics - Anfänger-Themen 15
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
JAVAnnik Problem beim Objekt bewegen Java Basics - Anfänger-Themen 20
A Erstes Programm - Problem beim Ausführen als jar Java Basics - Anfänger-Themen 3
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
B Problem beim Abspielen einer Videodatei Java Basics - Anfänger-Themen 4
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
W Problem beim CSV-Import Java Basics - Anfänger-Themen 5
M Datentypen Problem beim zusammenstellen eines Abfrage-Strings Java Basics - Anfänger-Themen 3
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
B Problem beim Email versenden mit Javamail Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
I Problem beim Schreiben eines ersten Programms Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
D Problem beim Auslesen aus File Java Basics - Anfänger-Themen 3
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
J Problem beim Löschen von elementen aus einer ArrayList Java Basics - Anfänger-Themen 5
V Problem beim Programm laden Java Basics - Anfänger-Themen 5
H Problem beim kompilieren Java Basics - Anfänger-Themen 3
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
4 OOP Problem beim Speichern verschiedener Klassen in verschiedenen Dateien Java Basics - Anfänger-Themen 25
M line.separator: Problem beim Lesen einer Datei Java Basics - Anfänger-Themen 11
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
G Problem beim Sortieren einer Liste Java Basics - Anfänger-Themen 20
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
H problem beim zeichen im JFrame Java Basics - Anfänger-Themen 6
F Problem beim Objekteaufruf... Java Basics - Anfänger-Themen 4
E BlockChallenge: Problem beim löschen der Blöcke Java Basics - Anfänger-Themen 3
H Problem beim Verkürzen von Programm Java Basics - Anfänger-Themen 3
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
M Problem beim Zugriff auf Daten GUI + Startklasse Java Basics - Anfänger-Themen 4
P Problem beim Thread Java Basics - Anfänger-Themen 20
0 problem beim Polygon zeichnen Java Basics - Anfänger-Themen 3
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
0 Problem beim Starten des Applets Java Basics - Anfänger-Themen 2
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
G Problem beim Programmieren von Blackjack Java Basics - Anfänger-Themen 15
R Problem beim Laden eines Images Java Basics - Anfänger-Themen 7
K Problem beim installieren des JDK 1.6+ version Java Basics - Anfänger-Themen 3
T Problem beim Konsolenstart Java Basics - Anfänger-Themen 5
C Problem beim Berechnen der Quadratwurzel Java Basics - Anfänger-Themen 3
C Problem beim nutzen von Teilprogrammen in main Java Basics - Anfänger-Themen 2
M Problem beim Zeichnen Java Basics - Anfänger-Themen 5
D Problem beim Kompilieren Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
G Problem beim Schreiben in Textdatei Java Basics - Anfänger-Themen 9
F ggT finden - problem beim qc Java Basics - Anfänger-Themen 4
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4
S Problem beim Verstehen des Quellcodes Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben