Le proprietà di qualsiasi oggetto sono sempre private, come privati sono i simboli a cui esse fanno riferimento. Qualunque altro oggetto debba accedere al valore di uno dei suddetti simboli deve farlo attraverso la proprietà cui è associato.
Per dichiarare una proprietà la strada è una sola: utilizzare la parola chiave Property
Property Nome As Tipo definisce una proprietà in lettura/scrittura
Property Read Nome as Tipo definisce una priprietà in sola lettura.
Tieni presente che l'IDE crea automaticamente le procedure di gestione delle proprietà alla pressione del tasto Invio
Alla proprietà viene poi associato un simbolo dello stesso tipo per contenerne il valore.
Supponi di avere una classe Automobili, per ciascuna automibile dovrai gestire diversi parametri:
- Colore
- Cilindrata
- Modello
...
avremo quindi la Classe automobile:
' Gambas class file
' definisco le properità
Property Colore As Integer
Property Modello As String
Property Cilindrata As String
Property Read Allestimento as String
' definisco i simboli associati alle proprietà
Private $Colore As Integer
Private $Modello As String
Private $Cilindrata As String
private $Allestimento as String
Public Sub _new(versione As String)
$Allestimento = versione
End
' le funzioniutilizzate per gestire le proprietà
Private Function Colore_Read() As Integer
Return $Colore
End
Private Sub Colore_Write(Value As Integer)
$Colore = Value
End
Private Function Modello_Read() As String
Return $Modello
End
Private Sub Modello_Write(Value As String)
$Modello = Value
End
Private Function Cilindrata_Read() As String
Return $Cilindrata
End
Private Sub Cilindrata_Write(Value As String)
$Cilindrata = Value
End
Private Function Allestimento_Read()
Return $Allestimento
End
Nella classe ConfiguraVettura avremo:
Public Sub Configura()
Dim Vettura As Automobile
With Vettura = New Automobile("luxury")
' la proprietà Allestimento in sola lettura viene impostata tramite la sub _new(...)
.Cilindrata = "1368" ' imposto la proprietà Cilindrata
.Colore = Color.Red ' imposto la proprietà Colore
.Modello = "sotema"
End With
End