Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Implementing oop, am i learning this correctly?

$
0
0
Hello disco citizens. I'm trying to get a clear understanding of object oriented design principles, and my main interest is in generics and abstraction. The problem was always "This" until all of a sudden my school is sending me to vb.net class next semester. So i had to deal with "Me". Well, long story short, i think I'm starting to understand it. I'll post some code, it's fairly simple, a base class creates a concept, then the next one provides some functionality, which is then utilized by the Gui. There's two implementations of the base class, and very sparse ones at that.

First the Base Class, chanceObject.vb
Public MustInherit Class chanceObject
    Public Property Value As Integer
    Public Property stringValue As String
    Public Overrides Function ToString() As String
        Return Me.stringValue
    End Function
    Public MustOverride Sub assignValue()
End Class


Then the implementation i did first, coin.vb
Public Class coin
    Inherits chanceObject
    Public Property boolValue As Boolean = False
    Overridable Function doFlip()
        Static x As New System.Random
        Me.Value = x.Next(0, 2)
        assignValue()
        Return Me
    End Function
    Public Overrides Sub assignValue()
        Select Case Me.Value
            Case 0
                stringValue = "Heads"
                boolValue = False
            Case 1
                stringValue = "Tails"
                boolValue = True
        End Select
    End Sub
End Class


And a die object was an obvious choice to complement
Public Class die
    Inherits chanceObject
    Public Property Sides As Integer
    Overridable Function doRoll()
        Static x As New System.Random
        Me.Value = x.Next(1, Sides + 1)
        assignValue()
        Return Me
    End Function
    Public Overrides Sub assignValue()
        stringValue = Me.Value
    End Sub
End Class


If you throw the code in a forms application, put a button on the form, and a multiline textbox, with a vertical scrollbar in it.
then use this code to demo the classes
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Me.TextBox1.Text = ""
        Dim myCoin As New coin
        Dim myDie As New die
        myDie.Sides = 6
        For i = 0 To 25
            myDie.doRoll()
            myCoin.doFlip()
            Me.TextBox1.Text += "Coin Result : " _
               & vbCrLf & myCoin.ToString & vbCrLf
            Me.TextBox1.Text += "Roll Result : " _
               & vbCrLf & myDie.ToString & vbCrLf
        Next
    End Sub

End Class


My question is what is right and wrong in the above code? how can i improve on it? A big thanks to AdamSpeight2008 for the overrides ToString thing, that was really the key i needed to see a "Pathway" for a chanceObject hierarchy!

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>