Eine get- und set-Methode für alle Attribute

Liebe OOPler,
da ich neu in der Objektorientierten Programmierung bin, ich möchte wissen, ob es üblich, möglich und/oder ratsam ist, pro Klasse nur eine get- und eine set-Methode für alle Attribute anzulegen. Mein Informatiklehrer begründete das Anlegen von individuellen Methoden mit der Aussage, dass es nur Copy&amp:stuck_out_tongue_winking_eye:aste-Arbeit sei, doch ich würde gerne die Übersichtlichkeit und Wartbarkeit wahren.
Ich könnte ja eine Whitelist für die erlaubten Attribute anlegen und den Namen des Attributs als Parameter übergeben.
Wie sieht es bezüglich dieser Frage mit den Konventionen aus? Gilt für PHP das Selbe wie für Java?
Vielen Dank im Voraus.

Mit freundlichen Grüßen
HerHde

Hi,
der Grund für individuelle Methoden ist nicht das es Copy & Paste ist sondern weil du dadurch exklusiven Zugriff auf eine bestimmte Eigenschaft bekommst. Das ist definitiv besser als über allgemeine Methoden zu arbeiten. Außerdem funktionieren diese in Java auch nicht.
Lg Knerd

Eine get und eine set methode . Uh ah aua.

Ich hab ein string .

set(variable,„asstring“,value);
get(variable,„asstring“,value);

bei int dann wohl

set(variable,„asint“,value);
get(variable,„asint“,value);

ich find es schon ein problem das ich nicht wirklich weiss was ich da zurück bekomme . wenn dann noch die parameter hinter anderen variablen versteckt sind , dann weiss ich wirklich ohne den inhalt gar nicht mehr welcher typ da wie rein oder raus kommt.

ein getIntLeben zeigt sofort mit wem und worum es geht.

ein get(valuevariable,valuetyp,valuevalue) , sagt nix aus , da muss ich selber sicher sein das auch das da rein kommt was da rauskommen soll.

ausserdem bläht sich solch eine funktion auf. wenn dann die vielen typen dazu kommen etc , muss man zwar nur an einer funktion rumschrauben aber die ist dann mindestens doppelt so unübersichtlich fehler anfällig wie nötig.
Einzig alleine wenn man eine logik benutzt die quasi ein template ist wäre es sinvoll, dann reicht eine funktion . Überischtlicher wird nicht.

Ich nenne es einfach nur schreib faul . Gehen tut beides , aber wo der eine spart da muss der andere nach arbeiten .

Hallo,

Die getter und setter Methoden sind JavaBean Convention:
http://docstore.mik.ua/orelly/java-ent/jnut/ch06_02.htm

Und deshalb Best Practice.

Viele Grüsse
Simon

Hi,

nach zweimaligen lesens deiner Frage und der Antworten, bin ich mir nicht sicher, ob ich dich verstanden habe.

Also du hast folgendes Beispiel:

public class Person{

 private String name = null;
 private int alter, fitness;

 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public int getAlter() {
 return alter;
 }
 public void setAlter(int alter) {
 this.alter = alter;
 }
 public int getFitness() {
 return fitness;
 }
 public void setFitness(int fitness) {
 this.fitness = fitness;
 }
 }

Konstruktor mal weggelassen.
(Wobei man die Klasse Person abstrakt oder als Oberklasse definieren würde, aber …einfachtshalber, so)

Jetzt möchtest du alle 3 Attribute in einer Getter und Setter, setzen bzw. drauf zugreifen?

Bei einem setter mag das schon gehen (welche man dann auch weglassen kann, und anstattdessen, beim erzeugen des Objekts Person, im Konstruktor, die Eigenschaften initialisiert.
Beispiel >

public class Person{

 private String name = null;
 private int alter, fitness;

 public Person(String name,int alter,int fitness){
 this.name = name;
 this.alter = alter;
 this.fitness = fitness;
 }

Jedoch bei den Getters, kannst du nur auf eine Eigenschaft mit übereinstimmenden Datentyp zugreifen und wäre von daher, mit einem getter für alle Attribute, Unfug.

Du kannst in Eclipse z.B. auf das Menu Source > generate get und setters …gehen, und all deine, vorher festgelegten Eigenschaften des Objekts, werden in get und setters , mit korrektem Datentyp, generiert. Zur Wartbarkeit gehe auf das Menu Eclipse > Einstellungen, im Fenster gehst du auf Java > Editor > Folding und aktivierst alle Häkchen > Apply.
Jetzt hast du im Codefeld, neben jeder Methode oder Kommentar, usw. ein Minus und du kannst die Methoden …usw. ein- und ausklappen, damit hast du mehr Übersicht. Falls du Netbeans User sein solltest, dort funktioniert das Folding etwas anders.

Gruß