mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-22 10:44:17 +00:00
30 lines
783 B
Markdown
30 lines
783 B
Markdown
|
# Introduzione agli oggetti
|
||
|
|
||
|
Per rendere più comoda la scrittura di codice, dobbiamo avere un meccanismo che protegga alcune componenti del codice dal misuso.
|
||
|
|
||
|
Supponiamo di voler implementare un contatore.
|
||
|
|
||
|
Esso avrà:
|
||
|
|
||
|
- 1 attributo
|
||
|
- Valore contatore
|
||
|
- 3 operazioni
|
||
|
- Definizione
|
||
|
- Incremento
|
||
|
- Lettura
|
||
|
|
||
|
Devo prevenire tutte le operazioni all'infuori di queste, come il decremento.
|
||
|
|
||
|
In C non possiamo farlo: nulla impedisce al programmatore di fare ad esempio `cont++`!
|
||
|
|
||
|
Ci serve allora una soluzione.
|
||
|
Immaginiamoci un linguaggio che abbia costrutti per:
|
||
|
|
||
|
- livelli più alti di astrazione
|
||
|
- protezione migliore dei dati
|
||
|
- migliore riutilizzo del codice
|
||
|
|
||
|
Vogliamo che ci dia un errore se viene eseguito `cont++`, ad esempio.
|
||
|
|
||
|
Vogliamo definire dei **vincoli**.
|