_age def set_age( self, x): self. _age = x raj = Geek() t_age( 21) print (t_age()) print (raj. _age) Ausgabe: 21 Im obigen Code funktioniert get_age() und set_age() fungiert als normale Funktion und spielt keine Rolle als Getter und Setter. Um diese Funktionalität zu erreichen, hat Python eine spezielle Funktion property(). Verwenden der Eigenschaft(), um das Verhalten von Gettern und Setzern zu erreichen In Python property() ist eine integrierte Funktion enthalten, die ein Eigenschaftsobjekt erstellt und zurückgibt. Ein Eigenschaftsobjekt verfügt über drei Methoden: getter(), setter() und delete(). property() Funktion in Python hat vier Argumente property(fget, fset, fdel, doc), fget ist eine Funktion zum Abrufen eines Attributwerts. fset ist eine Funktion zum Festlegen eines Attributwerts. fdel ist eine Funktion zum Löschen eines Attributwerts. Java - Java :Getter-und Setter-Konstruktor. doc Erstellt eine Dokumentzeichenfolge für das Attribut. Eine Eigenschaft Objekt verfügt über drei Methoden, getter(), setter(), und delete() zu spezifizieren fget, fset und fdel individuell.
aber wenn ich es auf privat ist, kann ich nicht mehr zugreifen, die es in anderen Methoden. Informationsquelle Autor user962206 | 2012-01-15
Einzige Alternative wäre bei einem Zugriff auf die Collection jedes mal zu prüfen, ob die Collection noch null ist. Öhm... was spricht dagegen die Liste direkt beim deklarieren zu initialisieren? Wozu brauchst du da zwangsweise nen Kontruktor? public class Foo {
private List
Das kann natürlich auch unabhängig voneinander sein. #5 Das ist kein "unsichtbarer" Konstruktor sondern der "default constructor". Der wird vom Compiler eingefügt wenn kein anderer Konstruktor explizit ausprogrammiert ist, siehe auch: Classes Das eine hat nur bedingt was mit dem anderen zu tun. Die Frage ist meiner Meinung nach eher: Will man ein Object erzeugen das schon direkt bei dem Konstruktoraufruf die Membervariablen belegt oder will man ein leeres Object erzeugen und die Werte später setzen. #6 Mir sind die Sachen bewusst hatte auch erst das Wort Default Konstruktor verwendet, dennoch passt für mich auch der Begriff "unsichtbarer", da er ja nicht da ist aber ich stimme dir zu! EDIT: mit dem zweiten Satz sprichst du ja genau das an, was unser vorredner schon geschrieben hat! du zwingst den Benutzer der Klasse übergabe parameter zu setzen! Zugriffsfunktion – Wikipedia. EDIT2: Das sagt natürlich aus, wenn du einen Konstruktor hast mit übergabeparametern überschreibst du den defaultkonstruktor! (daher auch jem.
So schützt du deine Instanzvariablen nach außen. Es ist eigentlich ganz einfach. Du musst lediglich vor deine Variablen das Keyword private schreiben. Private ist einer von vier Access Modifiers. Dieser bewirkt dass Variablen oder Methoden nicht verfügbar sind. Verfügbar – was heißt das? Du kannst diese Methoden oder Variablen in anderen Klassen nicht verwenden. So funktionieren Get Java Methoden & Set Java Methoden. Diese sind dann nicht sichtbar für andere Klassen. Und so könnte der Code jetzt aussehen. private int moebelGroesse; //Zugriff von außen nicht möglich String moebelArt; //Zugriff von außen weiterhin möglich String moebelFarbe; //Farbe des Möbelstückes - Zugriff von außen möglich} In diesem Fall wäre der Zugriff auf die Größe nicht mehr außerhalb der Klasse verfügbar. Die Farbe und die Möbelart wären es dennoch. Generell solltest du den Zugriff auf alle Instanzvariablen verbieten. Setze also immer alle Instanzvariablen auf private und beschränke den Zugriff. Jetzt besteht ein Problem. Versuche doch einmal in der Klasse Lagerverwaltung einem Möbelstück eine Eigenschaft zu zuweisen.
public class Beispiel_für_Konstruktor { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Auto auto1 = new Auto(2, "BMW", 200); // Erzeugt eine neues Objekte auto // und ruft den Konstruktor // den man selber definieren // kann auf. (schwindigkeit); (); Auto auto2 = new Auto(4, "Audi", 240); Auto auto3 = new Auto(); ();}} Kann mir jemand sagen wie Ich hier im Quellecode eine Getter / Setter Methode einbaue und wozu Ich das ganze nutzen kann?? MFG LENO #3 OK brauche Ich dan noch einen Konstruktor??? naja man kann somit den Benutzer der Klasse dazu zwingen das er beim erzeugen des Objekts schon ein Argument übergibt. Setter und getter video. #4 Wenn du keinen Konstruktor schreibst, hat die Klassen natürlich trotzdem einen "unsichtbaren" Konstruktor ohne übergabeparameter, damit eine Klasse erzeugt werden kann. So gesehen kannst du den Konstruktor weg lassen. Aber man kann natürlich nicht sagen, wenn man Methoden hat die Variablen übergeben bekommen, man den Konstruktor weg lassen kann.