Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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:
public class Student {
private String name;
private int alter;
public Student(String nachname, int alter_) {
name = nachname;
alter = alter_;
}
public String getName(){
return name;
}
public static void main(String[] args) {
Student student1 = new Student ("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:
public int add(int a, int b) {
return a+b;
}
public static void main(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.
Es ist schlecht programmiert, wenn dir irgendeine Methode irgendwas einfach so in die Konsole textet.
getter und setter sind dazu da, um Instanz-Variablen eines Objektes zu bekommen (get) oder zu setzen (set).
z.B.
Java:
class GetUndSetBeispiel {
private int meineTolleZahl;
public int getMeineTolleZahl() {
return meineTolleZahl;
}
public void setMeineTolleZahl(int meineTolleZahl) {
this.meineTolleZahl = meineTolleZahl;
}
}
Übrigens:
Java:
public void rechne2 (int zahlc, int zahld){ // Keine SET-Methode!!!!
int ergebnis;
ergebnis = zahlc + zahld;
System.out.println("LOL" + ergebnis);
}
Kannst du auf das hier verkürzen:
Java:
public void rechne2 (int zahlc, int zahld){ // Keine SET-Methode!!!!
int ergebnis = zahlc + zahld;
System.out.println("LOL" + ergebnis);
}
Oder Gleich:
Java:
public void 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:
public void outputAddition(int zahlc, int zahld){ // Keine SET-Methode!!!!
System.out.println("LOL" + (zahlc + zahld));
}