eigene klassen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von HeadShotHarp.

    eigene klassen

    hi leute,

    ich möchte eigene klassen erstellen,

    ich möchte jetzt folgendes machen
    (beispiel konto... mir fällt grad nix besseres ein)

    Dim K as New Konto
    K.Inhaber = "Peter"
    K.Guthaben = 100

    usw.

    also das soll dann richtig angezeig warden, wenn ich k. schreibe dass er mir das schon selber anbietet dass es inhaber und guthaben gibt

    aber ich möchte das nicht mit Dim K As New With = {.Inhaber = "Peter", .Guthaben = 100}
    weiß wer wie ich so eigene classen definieren kann?

    mfg HeadShotHarp

    HeadShotHarp schrieb:


    weiß wer wie ich so eigene classen definieren kann?


    Ja, weiss ich. ^^

    Was Du brauchst sind Propertys in der Klasse.

    Also eigene Klasse erstellen und diese eigene Klasse beinhaltet dann die Properys Guthaben und Inhaber.

    Und damit zeigt Dir IntelliSense dann diese beiden Propertys auch automatisch an wenn Du die Klasse ansprichst.

    Gruß

    Rainer

    raist10 schrieb:

    HeadShotHarp schrieb:


    weiß wer wie ich so eigene classen definieren kann?


    Ja, weiss ich. ^^

    Was Du brauchst sind Propertys in der Klasse.

    Also eigene Klasse erstellen und diese eigene Klasse beinhaltet dann die Properys Guthaben und Inhaber.

    Und damit zeigt Dir IntelliSense dann diese beiden Propertys auch automatisch an wenn Du die Klasse ansprichst.

    Gruß

    Rainer


    Wenn man über die Klasse direkt auf die Propertys zugreifen möchte, müssen diese allerdings als Public definiert sein - was ja eigentlich nicht sinnvoll ist bei der OOP


    Wenn man über die Klasse direkt auf die Propertys zugreifen möchte, müssen diese allerdings als Public definiert sein - was ja eigentlich nicht sinnvoll ist bei der OOP


    Wieso ist das nicht sinnvoll? Es kommt ja immer darauf an was man vor hat. Entsprechend kann man auch die Modifikatoren anwenden, wie z.B. wenn man nur lesenden Zugriff erlauben will, kann man die Property ja als ReadOnly deklarieren oder nu rden Set-Teil der Property als Private deklarieren.

    Gruß

    Rainer

    raist10 schrieb:



    Wenn man über die Klasse direkt auf die Propertys zugreifen möchte, müssen diese allerdings als Public definiert sein - was ja eigentlich nicht sinnvoll ist bei der OOP


    Wieso ist das nicht sinnvoll? Es kommt ja immer darauf an was man vor hat. Entsprechend kann man auch die Modifikatoren anwenden, wie z.B. wenn man nur lesenden Zugriff erlauben will, kann man die Property ja als ReadOnly deklarieren oder nu rden Set-Teil der Property als Private deklarieren.

    Gruß

    Rainer

    Naja, stimmt auch wieder...
    kann mir da vielleicht nochmal jemand auf die sprünge helfen?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim K = New Konto("Peter")
    4. End Sub
    5. End Class
    6. Class Konto
    7. Sub New(ByVal Inhaber As String)
    8. End Sub
    9. End Class


    sowas hätte ich schonmal aber das ist ja noch nicht ganz was ich möchte
    also ich hab so ein vb buch und da steht das drin...
    habs genauso gemacht nur das funktioniert nicht

    ich werds gleich nochmal machen und dann die fehlermeldung hinzufügen


    mfg HeadShotHarp

    EDIT :

    Fehlermeldung:
    Für den Parameter "Inhaber" von "Public Sub New(Inhaber As String)" wurde kein Argument angegeben. C:\Dokumente und Einstellungen\Simon\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\WindowsApplication1\Form1.vb 4 13 WindowsApplication1

    und mein code xD

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim k As New Konto ' er unterstreicht k als fehlerquelle
    4. k.Inhaber = "Peter"
    5. End Sub
    6. End Class
    7. Class Konto
    8. Private _Inhaber As String
    9. Sub New(ByVal Inhaber As String)
    10. _Inhaber = Inhaber
    11. End Sub
    12. Property Inhaber() As String
    13. Get
    14. Return _Inhaber
    15. End Get
    16. Set(ByVal value As String)
    17. _Inhaber = value
    18. End Set
    19. End Property
    20. End Class
    Du hast ja in deiner Klasse den Code "Sub New(ByVal Inhaber As String)" und wenn du ein neues Konto (K) erstellst,
    wird genau dieser Code aufgerufen. Daher musst du den Inhaber gleich mitgeben, so wie du das vorher gemacht hast:

    Dim K = New Konto("Max")

    Oder du kannst bei der Klasse auch folgenden Code hinzufügen (bzw. abändern):
    Sub New()

    End Sub
    jo das hab ich auch schon gelesen...

    habs jetzt so hinbekommen vielen dank

    nur wie ruf ich das jetzt auf

    also man gibt dann seinen namen ein in ne textbox und der soll dann gucken welches konto den inhaber max heißt und dann guthaben usw ausgeben...

    das schaff ich i-wie nicht

    mfg HeadShotHarp
    ich habs in der suchfunktion nicht gefunden...

    naja und google hab ich heute mal ausgelassen xD

    mfg HeadShotHarp

    PS: muss google wohl mal installieren
    ich guck mal ob ichs hinbekomme sonst melde ich mich nochmal


    bis dahin danke an alle die geholfen haben


    EDIT:

    nope da funktioniert garnix

    ich will dass wenn ich schreibe dim k as konto
    (hab konto anstatt eis genommen)

    und dann k. schreibe dann soll er mir die operatoren enzeigen

    also

    k.
    Name
    Guthaben
    BLZ
    u.s.w.


    dein tutorial versteh ich nicht habs so gut es ging nachgemacht.
    schreib mal das beispiel auf 2k8 um

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „HeadShotHarp“ ()

    also versucht hab ich es

    aber ich habs nicht hinbekommen

    also kann sein dass ich alles falsch mache aber ich finde das tutorial einfach nicht gut gelungen
    hab ne klasse hinzugefügt und dass alles eingetippt

    und in form load dann k.inhaber gschrieben
    (davor natürlich dim k as konto)

    und dann kommt:

    inhaber ist kein member von k


    mfg HeadShotHarp
    Wie wär's damit, wenn du einfach mal das komplette Tutorial liest...

    Stichwort: Property (Plural: Properties)

    MfG,
    X-Zat / Momo

    //Edit:

    Und für solch dreiste Antworten wie
    naja und google hab ich heute mal ausgelassen xD
    habe ich einfach <=0 Verständnis. Meiner Meinung nach sollte der Thread geschlossen werden - Du fragst lieber uns als Google... Schön, dass du uns soviel zutraust, aber wir sind keine Code-Fabrik für lern-unwillige Menschen! X(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „X-Zat“ ()