Könntihr mir bitte mal erklären warum mir beim starten des folgendens programmes nicht der name ausgebeben wird, obwogl ich diesen in der return methode anspreche...
Java:
publicclassStudent{privateString name;privateint alter;publicStudent(String nachname,int alter_){
name = nachname;
alter = alter_;}publicStringgetName(){return name;}publicstaticvoidmain(String[] args){Student student1 =newStudent("Seidler",6);//System.out.println(student1.name);
student1.getName();}}
Weil da nur eine Methodenaufruf steht. Mit dem Ergebnis passiert nichts. Wenn es ausgegeben werden soll, dann wäre z.B. System.out.println( student1.getName()) eine Lösung.
...ich dachte eigentlich das return ist dazu da mit die werte auf der systemkosole auszugeben.....??
@
Murray
wenn das so ist dann kann ich das
Java:
System.out.println
auch direkt in die get-methode schreiben bzw. daraus eine set-methode machen da ja anscheined nichts zurrückgegeben wird sonder "nur" etwas ausgegeben wird.
aber was ist nun der unterschied zwischen ausgeben und zurückgeben.
mir wäre eigentlich am besten geholfen wenn mir hier jemand mal ein kleines programm zeigen könnte wo
die
Nein, der ist dazu da, Ergebnisse zurück liefern zu können.
Beispiel für ein sinnvolles Return:
Java:
publicintadd(int a,int b){return a+b;}publicstaticvoidmain(String[] args){int result =add(10,10);System.out.println(result);}
Bei dir geht es schlich um Kapselung des Namen. Der Gedanke hinter Kapselung ist, dass die Student-Klasse volle Kontrolle darüber erlangt, welche Informationen andere Klassen von ihr abfragen können.
Im getName() könnte die Klasse zum Beispiel zählen, wie häufig der Name abgefragt wurde, etc. pp.
Du hast nicht verstanden, was man get und set Methoden gemeint ist.
Eine set-Methode setzt einen Wert eines Feldes von einem Objekt.
Eine get-Methode fragt den Wert eines Feldes hingegen ab.
Der Vorteil ist nun, dass die Klasse in diesen Methoden Kontrolle ausüben kann über die Informationen, die nach außen hin sichtbar sind.
Mit return haben get und set nichts zu tun.
Aufgabe: Stelle eine Liste von 10 Studenten auf, frage von denen z.B. jeweils das Alter ab und addiere alle zusammen.
Schreibe das Endergebnis in die Konsole.
Da hilft es dir wenig, wenn das Objekt direkt die abgefragte Zahl in die Konsole schreibt. Du willst sie ja gar nicht ausgeben sondern mit ihr weiter rechnen.
publicvoid rechne2 (int zahlc,int zahld){// Keine SET-Methode!!!!System.out.println("LOL"+(zahlc + zahld));}
Solltest du aber sowieso umbennen, denn rechnen kann man das ja nicht wirklich nennen.
Du gibst zwei Werte mit, aber erhälst sie nicht zurück => Kein Rechnen
Java:
publicvoidoutputAddition(int zahlc,int zahld){// Keine SET-Methode!!!!System.out.println("LOL"+(zahlc + zahld));}