Kap. 11.1 om Objektorientering. Vi studerte hvordan en (med Class) lager oppskrift (beskrivelsen), og med Private (default) verner egenskaper. Kakeeksempelet gir alle kaker et startnavn, som kan leses og skrives av klienter, men kun gjennom metoden sittnamn(). Klienten aner ikke at variabelen heter _navn.
Oppskriften er
Public Class Kake
Private _navn As String = "prinsessekake"
Public Property sittnamn() As String
Get ' "getter"
Return _navn
End Get
Set(ByVal v As String) ' "setter"
_navn = v
End Set
End Property
End Class
Klienten lager 11 kaker som legges i et array, men den 12. kaken får ikke plass i den fulle mage (runtimefeil):
Public Class Form1
Dim kaker(10) As Kake
Dim kakenr As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim k As Kake = New Kake()
k.ShowDialog()
k.sittnamn() = InputBox("hva er kakens navn? ")
kaker(kakenr) = k
kakenr += 1
visKaker()
End Sub
Sub visKaker()
For i As Integer = 0 To kakenr - 1
lst.items.add(i & ": " & kaker(i).sittnamn())
Next
End Sub
End Class
Det ble påvist fra salen (Kim) at egenskaper kan angis som
Public readonly navn as string
og da kan klienten bruke "navn" direkte sålenge det kun er LESING det dreier seg om. Det likeste er likevel at lesing og skriving skjer gjennom "getter" og "setter", slik tillatt med "Public Property".
Ingen kommentarer:
Legg inn en kommentar