Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Eigene Klasse in VB.net

Empfohlene Beiträge

Hallo,

ich versuche mich in VB.net einzuarbeiten und hätte eine Frage zu dem Erstellen einer eigenen Klasse.

Ich möchte gerne dieser Klasse via Button 2 Zahlen übergeben, die diese Klasse dann addieren und dann an eine TextBox ausgeben soll.

Meine Klasse sieht bis jetzt so aus:

Public Class Addiere

    Private mZahl1 As Integer
    Private mZahl2 As Integer



    Public Property Zahl1 As Integer
        Get
            Return mZahl1
        End Get
        Set(ByVal value As Integer)
            mZahl1 = value
        End Set
    End Property

    Public Property Zahl2 As Integer
        Get
            Return mZahl2
        End Get
        Set(ByVal value As Integer)
            mZahl2 = value
        End Set
    End Property



    Public Sub ShowErgebnis(ByVal mZahl1 As Integer, mZahl2 As Integer)
        mZahl1 = Zahl1
        mZahl2 = Zahl2

    End Sub

End Class

 

In der Form habe ich jetzt einen Button programmiert:

 


    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim cls As New Addiere
        cls.Zahl1 = 3
        cls.Zahl2 = 5

    End Sub

Kann mir jemand eine Hilfestellung geben, wie ich es programmieren muss, dass das Ergebnis in eine TextBox angezeigt wird. In diesem Fall eine 8.

Ich habe schon mehrere Sachen probiert und komme nicht weiter.

Gruß

Eleu

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Deine Prozedur ShowErgebnis() ist schon mal nicht richtig. Es muss eine Funktion sein, die eben zahl1 und zahl2 addiert und das Ergebnis zurückgibt.

Dann kannst du in der Prozedur Button3_Click() einfach das Ergebnis einer TextBox zuweisen.

Public Class Addiere
    Public Property Zahl1 As Integer
    Public Property Zahl2 As Integer

    Function Berechne() As Integer
        Return Zahl1 + Zahl2
    End Function
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim add As New Addiere
    add.Zahl1 = 5
    add.Zahl2 = 3

    TextBox1.Text = add.Berechne()
End Sub

Deine Addieren-Klasse sollte nicht dafür zuständig sein, das Ergebnis in die Textbox zu schreiben. Sie sollte nur das Ergebnis zurückliefern und die Anzeige in der Textbox sollte die Klasse übernehmen, die es auch braucht. Ansonsten ist deine Addieren-Klasse abhängig von der TextBox und die Klassen sollten so unabhängig wie möglich sein.

bearbeitet von Whiz-zarD

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 30 Minuten schrieb Whiz-zarD:

Deine Addieren-Klasse sollte nicht dafür zuständig sein, das Ergebnis in die Textbox zu schreiben. Sie sollte nur das Ergebnis zurückliefern und die Anzeige in der Textbox sollte die Klasse übernehmen, die es auch braucht. Ansonsten ist deine Addieren-Klasse abhängig von der TextBox und die Klassen sollten so unabhängig wie möglich sein.

Hallo Whiz-zarD,

vielen Dank.

So wollte ich es ja auch machen.

Ich hätte schreiben sollen

....die diese Klasse dann addieren und dann, mit dem Betätigen des Button, an eine TextBox ausgeben soll.

Gruß

Eleu

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo,

vielleicht noch eine Frage:

Warum muss ich eigentlich die Klasse "Addiere" mit "Dim add As New Addiere" an add vererben?

Warum kann man die Klasse "Addiere" nicht direkt verwenden?

Ich hoffe, ich habe mich verständlich ausgedrückt?

Gruß

Eleu 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du vererbst die Klasse nicht.
Deine Klasse Addiere ist im Prinzip nur ein Muster / Bauplan / Konstrukt wie dein reales Objekt auszusehen hat bzw. welche Eigenschaften und Methoden es besitzt. 

 Dim add As New Addiere

Damit drückst du im Prinzip nur aus:
Baue mir ein Objekt mit der Bezeichnung 'add' basierend auf meinem Bauplan 'Addiere'
Siehe auch:

https://de.wikipedia.org/wiki/Klasse_(Objektorientierung)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du schmeißt hier Begriffe etwas durcheinander. "Vererben" bedeutet was anderes. Vererben ist, wenn eine Klasse von einer anderen Klasse erbt. Beispiel:

Public Class BonusAddiere
    Inherits Addiere

    public Function BerechneBonus() As Integer
        Return MyBase.Berechne() * 2
    End Function
    
End Class													

Die Klasse BonusAddiere erbt von Addiere (achte auf das Schlüsselwort Inherits). Die Methode BerechneBonus() holt sich das Ergebnis von Berechne() aus der Basisklasse und multipliziert diesen Wert mit 2. Die Vererbung ist einer der Grundkonzepte der Objektorientierung, die du verstanden haben solltest, wenn du mit einer objektorientierten Sprache arbeiten möchtest.

Die Zeile 

Dim add As New Addiere

Erstellt nur ein Objekt der Klasse Addiere, und weist es der Variable add zu. In anderen Programmiersprachen (z.B. C#) würde es so aussehen:

var add = new Addiere();

Da wird es vielleicht ein bisschen deutlicher, dass wir hier nur eine Variable mit dem namen add definieren, die als Wert ein Objekt von Addiere bekommt.

bearbeitet von Whiz-zarD

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo,

das mit dem Vererben schau ich mir noch mal genauer an

So geht es übrigens auch:

Public Class Addiere_Variante2
    Function Berechne(ByVal Zahl1 As Integer, Zahl2 As Integer) As Integer
        Return Zahl1 + Zahl2
    End Function
End Class

und in der Schaltfläche dann

  Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim clg As New Addiere_Variante2
        TextBox1.Text = clg.Berechne(5, 3)
    End Sub

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung