Getter & Setter

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Final Griever.

    Getter & Setter

    In Java gibt es ja Getter & Setter, um Instanzvariablen einer Klasse zu getten bzw. setten, sodass es noch beeinflussbar ist, man also z.B. bei einem setText überprüfen kann, ob Zahlen vorkommen um diese rauszustreichen.

    Quellcode

    1. class IrgendeineKlasse
    2. {
    3. private String name; //Instanzvariable
    4. public String getName() //Getter-Methode
    5. {
    6. return this.name;
    7. }
    8. public void setName(String name) //Setter-Methode
    9. {
    10. this.name = name;
    11. }
    12. }


    Das heißt in VBisch, man kann nicht einfach

    VB.NET-Quellcode

    1. Textbox.Text = "Hallo"

    schreiben, sondern müsste

    VB.NET-Quellcode

    1. Textbox.setText("Hallo")

    schreiben. Dadurch könnte man innerhalb der setText-Methode überprüfen, ob vielleicht ein unzulässiger Buchstabe etc. gesetzt wurde.

    Jetzt die Frage:
    Warum gibt es das in VB nur teilweise?
    Z.B. gibt es bei der Textbox .getCharFromPosition().
    Dahingegen wird der Text als Property deklariert.

    Sollte ich jetzt in einer Klasse

    VB.NET-Quellcode

    1. Class Accesses
    2. Public numberOfAccesses 'bzw. auch als private mit den Settern/Gettern
    3. End Class


    lieber Setter/Getter machen, es einfach so lassen oder Propertys erstellen? ?(
    Das heißt in VBisch, man kann nicht einfach

    Quellcode
    1
    Textbox.Text = "Hallo"


    schreiben, sondern müsste

    Quellcode
    1
    Textbox.setText("Hallo")


    schreiben.


    Klar macht man DeineTextbox.Text = "Hallo"

    Ich versteh grad nicht was du meinst..

    Außerdem: in VB ist eine Property = Get & Set!
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    In VB sieht das dann typischerweise so aus:

    VB.NET-Quellcode

    1. Class MyClass
    2. Private x As Integer
    3. Public Property X() As Integer
    4. Get
    5. Return x
    6. End Get
    7. Set(ByVal Value As Integer)
    8. x = value
    9. End Set
    10. End Property
    11. End Class


    Das ist das Prinzip der Kapselung / Information Hiding.

    Gruß,

    f0x