- Introduzione alla programmazione orientata
ad oggetti in VB - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | basiche conoscenze di programmazione e preferibilmente almeno le basi della sintassi VB | ||
Costruttori, proprietà, metodi ed eventi | |||
LA CLASSE PIANOCOTTURA Una classe di prova che riproduce un oggetto reale.
Con la nascita di VB .Net, finalmente Basic è diventato un
linguaggio orientato a oggetti e non più una sua simulazione. Forse più
volte avrete sentito dire che in ambito di OOP (Object Oriented
Programming, appunto programmazione orientata a oggetti) tutto è un
oggetto. Ma cosa significa ciò? Class PianoCottura [...] 'Costruiamo (fabbrichiamo) il piano cottura specificando il numero di fornelli Sub New(Fornelli As Integer) [...] End Sub 'Proprietà che restituisce il numero di fornelli 'Non può essere modificata ReadOnly Property NumeroFornelli() As Integer [...] End Property 'Proprietà che restituisce la data di fabbricazione 'Non può essere modificata ReadOnly Property DataFabbricazione() As Date [...] End Property 'Proprietà che restituisce se si è connessi alla rete del metano o meno 'Permette di connettere e disconnettere il piano cottura [si veda Accendi()] Property ConnessoReteMetano() As Boolean [...] End Property 'Proprietà che restituisce se il piano cottura ha qualche fornello acceso o meno 'Non può essere modificata [Accendi() utilizza infatti 'la variabile interna blnAcceso direttamente] ReadOnly Property Acceso() As Boolean [...] End Property 'Metodo che imposta la variabile interna [non modificabile al di fuori dell'oggetto] blnAcceso 'su True ["accende" il fornello], controllando però prima di essere connessi alla rete del metano 'e in caso negativo, effettua il collegamento impostando la proprietà ConnessoReteMetano su True Sub Accendi() [...] End Sub 'Metodo che spegne il fornello semplicemente impostando la variabile interna blnAccesso su False. Sub Spegni() [...] End Sub 'Metodo che imposta la potenza della fiamma su quella specificata e restituisce quella precedente Function ImpostaPotenzaFiamma(NuovaPotenza As Integer) As Integer [...] End Function 'Evento che verrà richiamato in caso di spegnimento anomalo della fiamma Event SpegnimentoAnomaloFuoco() End Class Come si può intuire leggendo qua e là. Vi sono alcune corrispondenze tra ciò
che abbiamo sopra elencato e la loro trasposizione in codice. Prima di tutto
bisogna notare la parola chiave Class: essa indica che stiamo creando una classe
(chiamata PianoCottura), ovvero un modello di oggetto che verrà poi istanziato
(costruito e caricato in memoria effettivamente) e utilizzato. Semplice programma console che usa PianoCottura, per capire come utilizzare gli eventi. Proponiamo di seguito un semplice programma console che fa uso della nostra classe PianoCottura. Module Main 'Dichiara un oggetto PianoCottura specificando che ne gestirà anche gli eventi Dim WithEvents MioPianoCottura As PianoCottura Sub Main() 'Variabili che verrano utilizzate Dim intPotenzaPrecedente As Integer 'Costruisce il piano cottura MioPianoCottura = New PianoCottura(5) 'Imposta la potenza su 300 e stampa il valore precedente intPotenzaPrecedente = MioPianoCottura.ImpostaPotenzaFiamma(300) Console.WriteLine("La vecchia potenza era: " & intPotenzaPrecedente) 'Disconnette dalla rete del metano MioPianoCottura.ConnessoReteMetano = False 'Accende un fornello (e riconnette alla rete del metano) MioPianoCottura.Accendi() 'Attende la pressione di un tasto Console.Read() End Sub 'Gestisce l'evento SpegnimentoAnomaloFuoco() della classe PianoCottura (istanziata in MioPianoCottura) Sub MioPianoCottura_SpegnimentoAnomaloFuoco() Handles MioPianoCottura.SpegnimentoAnomaloFuoco 'Segnala il problema Console.WriteLine("Si è spento in maniera anomala il fornello!") 'Spegna il fornello MioPianoCottura.Spegni() End Sub End Module Prima di tutto si noti la dichiarazione del nostro oggetto MioPianoCottura
che istanzierà (crea l'oggetto partendo dal modello della classe) PianoCottura.
Esso è preceduto da WithEvents, che indica che ne verranno
gestiti gli eventi (come SpegnimentoAnomaloFuoco()).
|
|||
<< INDIETRO | by VeNoM00 |