  |
Programmazione orientata agli oggetti |
Java è un linguaggio di programmazione orientato gli oggetti.
Questo significa che implementa tre principi: incapsulazione,
ereditarietà, polimorfismo.
Nel corso delle slide vedremo abbastanza in dettaglio questi concetti,
e come vengono realizzati usando Java. È importante sottolineare che
questa la parte più difficile del corso. A parte i singoli e noiosi
dettagli della programmazione, la cosa fondamentale di apprendere i
concetti sottostanti e usarli nei propri programmi.
  |
Incapsulazione |
La OOP cerca di applicare alla programmazione alcuni concetti che sono
tipici del modo in cui le persone normalmente considerano e trattano
gli oggetti fisici. Consideriamo come primo esempio una radio. Si
tratta di un oggetto che utilizziamo tutti i giorni e che ha una
caratteristica principale: quella di essere incapsulato. Mi spiego
meglio: tutti sappiamo che sotto il guscio di una radio ci sono vari
componenti elettrici ed elettronici. Solo che non ne abbiamo accesso
diretto: per semplificare l'uso della radio e non costringere le
persone a una laurea in ingegneria elettronica per utilizzarle,
l'oggetto presenta una serie di manopole e pulsanti. Queste manopole
sono "l'interfaccia" dell'oggetto, ovvero di soli modi in cui è
previsto che l'oggetto venga usato. Allo stesso modo vedremo che gli
oggetti software hanno una protezione sui dettagli interni di come
viene usato l'oggetto, e mette a disposizione solamente alcuni
"metodi", che sono i soli modi in cui si può usare legalmente la
radio.
  |
Ereditarietà |
Nel mondo reale a volte si derivano nuovi oggetti estendendo quelli
esistenti. Per esempio ad una radio che ha una portata limitata, posso
ampliare le sue capacità di ricezione aggiungendo una antenna più
potente. In questo caso la nuova radio eredita dalla vecchia radio
molte caratteristiche e in più ha una capacità ulteriore che
aumenta le stazioni che è in grado di ricevere.
  |
Polimorfismo |
Una caratteristica tipica delle cose reali è il fatto che si possono
utilizzare allo stesso modo anche se si tratta realmente di oggetti
diversi. Per esempio se ho una radio, mi basta sapere questo per
sapere che la posso accendere e posso sintonizzarla su una stazione.
In realtà io posso avere radio completamente diverse. Quando gli
comunico di "accendersi" invocando il metodo di accensione, la radio
sa quello che deve fare. Gli oggetti sono "polimorfi", nel senso che
possono avere più forme (realmente codice diverso) anche se
apparentemente sono uguali. Ma vedremo ampiamente e più in
dettaglio che cosa questo significa nella programmazione.
|