No, cercando dei paragoni col mondo reale, la classe è come il progetto di un'automobile, l'oggetto è l'automobile vera e propria. Per creare un'automobile devi prima progettarla, definendone diversi aspetti (proprietà, metodi ed eventi). Una volta che il progetto è completo potrò portarlo in fabbrica e realizzare migliaia di automobili identiche, che varieranno tra loro grazie alle proprietà che ho deciso di implementare (colore, cilindrata, clima si/no, ecc.). Tornando al mondo informatico, quando creo un oggetto da una classe si dice che creo una nuova "istanza" della classe, che rende funzionanti i concetti progettati nella classe.Tutti dicono di pensare ad una classe come ad "un insieme di oggetti"
Una volta che hai capito questo sistema di ragionamento, diventerà più facile comprendere tutto il resto della programmazione ad oggetti. La tua difficoltà, se non ho capito male, è quella di calare questi concetti alla programmazione reale. Facciamo un esempio reale, immagina di dover scrivere un software che calcoli area e perimetro di alcuni poligoni regolari. Con la programmazione procedurale tradizionale, potrei scrivere:
Con la programmazione ad oggetti, mi sforzo di descrivere il poligono regolare con una classe:codice:Function Area(nlati As Integer, lato As Integer) As Integer 'algoritmo di calcolo dell'area '... End Function Function Perimetro(nlati As Integer, lato As Integer) As Integer '... End Function
Una volta definita questa classe, per utilizzarla dovrò scrivere:codice:Public Class Poligono Private nlati As Integer Private lato As Integer Public Property NumeroLati() As Integer 'legge e scrive nella variabile nlati End Property Public Property LunghezzaLato() As Integer 'legge e scrive nella variabile lato End Property 'costruttore Public Sub New(numlati As Integer, lunglato As Integer) nlati = numlati lato = lunglato End Sub Public Function Area() As Integer '.... End Function Public Function Perimetro() As Integer '.... End Function End Class
codice:Dim poligono1 As Poligono 'creo una istanza della classe Poligono - un triangolo lato 10 poligono1 = New Poligono(3, 10) 'stampo su console l'area e il perimetro Console.WriteLine(poligono1.Area()) Console.WriteLine(poligono1.Perimetro())

Rispondi quotando