[Java] "Return type is missing" was mache ich falsch?

... komplette Frage anzeigen

7 Antworten

Bin jetzt nur so Hobbyprogrammierer aber

das Return Type was vermisst wird ist doch " ; " ?

public Frau(String pName, int pAlter, double pKontostand){
name = pName

//fehlt das da nicht ?
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von snipesss
07.08.2016, 21:36

Das geht auch nicht :/

0
Kommentar von SirNik
08.08.2016, 10:38

auch bei Android programmiert man mit Java. .............. return-type: denk mal an den aufbau einer Methode: [zugriffsmodifizierer] [RETURN-TYPE] [bezeichner]([Parameterliste]) { ... } ............... BSP: public int meth(int param) { ... } ............ hier ist eine Methode ersichtlich in der Klasse Lena, die folgend aussieht: public Frau(...)........dort fehlt der Rückgabetyp. der lernende hat vermutlich einen Konstruktor der klasse frau schreiben wollen (ist ja die ausnahme, wo kein Rückgabetyp vorhanden ist), aber er tut dies in der Klasse Lena, somit wird dort ein fehler erkannt.

1

1. Du darfst den Konstruktor der Klasse "Frau" nicht (wiederholt) in einer anderen Klasse definieren.

2. bei { name = pName } fehlt ein Semikolon.

public Frau(String pName, int pAlter, double pKontostand){
name = pName; //Semikolon!!

}

3. Du versuchst im Konstruktor von "Frau" auf Lena zuzugreifen, Lena ist aber für die Klasse unzugänglich und möglicherweise nicht definiert.

Im Konstruktor der Klasse Frau müssen die Variablen definiert werden (Name, Alter, Kontostand). Wenn das erledigt ist, kannst du die Werte erst auslesen. Dort kannst du dann Parameter angeben, die du erst vergeblich in der Main-Klasse implementiert hast.

Also das "Public Frau(....)..." In der Main-Klasse entfernen, den Konstruktor in der "Frau"-Klasse anpassen und dann aufrufen.

Frau Lena = new Frau("Lena", 6, 0);

System.out.println(Lena.name);

Ich hoffe, dass das eindeutig ist, falls nicht einfach schreiben, dann versuche ich das am PC nochmal auszuführen. Coden am iPad ist nicht so toll (Autokorrektur und so :-))

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von snipesss
07.08.2016, 22:32

Also wie sollen beide Codes aussehen? 

0

1. was bezweckst du mit der methode public Frau(){} in der Klasse Frau? lena gibt es dort doch gar nicht, wieso willst du es den Namen ausgeben lassen? Normalerweise macht man das über eine spezielle get-Methode in der Klasse Frau (und paralell dazu auch für alter und kontostand.

Die Objektattribute sind normalerweise auch private, nicht public)

public String getName(){
return this.name;
}

2. wieso setzt du den Konstruktor für die Klasse Frau in die Klasse Lena?

Verschieb sie in die Klasse Frau:


public Frau(String pName, int pAlter, double pKontostand){
this.name = pName;
this.alter = pAlter;
this.kontostand = pKontostand;
}



Antwort bewerten Vielen Dank für Deine Bewertung

Ist zwar nicht klar zu erkennen. zähle aber mal deine geschweiften Klammern, gibt es zu jeder Öffnenden auch eine Schließende (an der richtigen Stelle), oder ist nicht eine Schließende zu viel?

Antwort bewerten Vielen Dank für Deine Bewertung

Deine Klasse heisst Lena und nicht Frau. Der Konstruktor wird also mit public lena aufgerufen und nicht mit public frau. Der Konstruktor muss den selben Namen wie die Klasse haben.

Antwort bewerten Vielen Dank für Deine Bewertung

Ähm kannst du den Problemkonstruktor mal vollständig auf pastebin hochladen, sodass es korrekt formatiert wird?

Antwort bewerten Vielen Dank für Deine Bewertung

Lade bitte mal den Code auf hastebin.com hoch, damit er richtig formatiert ist.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?