Get und Set

GroveStreet

Mitglied
Hi Leute, ich bin Neuling in Java und muss mir erst mal paar Grundlegenden Sachen bewusst werden..

Wenn ich mit der Getter und Setter Methode arbeite, sind diese Methoden eigentlich Instanzmethoden?

Und was macht das folgende in der set-Methode für einen Unterschied :

public void setName(String name){
this.name=name;
}//end of set

public void setName(String name){
set(name);
}//end of set

Wäre sehr nett wenn Ihr mir das erläutern könntet:)
 

olfibits

Aktives Mitglied
Du hättest diese Frage ruhig in deinem anderen Thread stellen können, aber OK ;)
Einen Unterschied machen die Aufrufe meiner Meinung nicht. Natürlich handelt es sich um Instanzmethoden, du willst ja wohl schließlich die Instanzvariablen manipulieren oder abfragen. :)
Wie im anderen Thread gesagt, mit den Methoden kannst du sinnvoller Exceptions oder eventuelle Fehleingaben abfangen. Du hast hier ja name als String definiert. Wenn jetzt die Variable klasse.name auf 15 gesetzt wird (Integer) gibt es eine CastException weil Integer nicht automatisch zu String gecastet werden kann (das erfordert natürlich erstmal dass name public ist).
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn ich mit der Getter und Setter Methode arbeite, sind diese Methoden eigentlich Instanzmethoden?
Ja.

Und was macht das folgende in der set-Methode für einen Unterschied :
Der Unterschied ist, dass es die in der zweiten Variante benutze Methode set(String) nicht gibt und es damit nicht kompilieren würde.
Die erste Variante ist ein typischer Setter.

Du hast hier ja name als String definiert. Wenn jetzt die Variable klasse.name auf 15 gesetzt wird (Integer) gibt es eine CastException weil Integer nicht automatisch zu String gecastet werden kann (das erfordert natürlich erstmal dass name public ist).
Das passiert natürlich nicht.
Es würde einfach nicht kompilieren, und dabei ist es unerheblich, ob Setter, Konstruktor oder direkter Zugriff.
 

Neue Themen


Oben