Capitolo5 Flashcards
Astrazione Funzionale
Concentrarsi sull’implementazione di metodi che rappresentano concetti dinamici, azioni o funzioni, senza dover tenere conto dell’implementazione stessa.
Astrazione dei Dati
Definire classi che raccolgono solo le caratteristiche e funzionalità essenziali degli oggetti che devono definire nel contesto specifico.
Astrazione del Sistema
Definire un’applicazione nei termini delle classi essenziali che soddisfano gli scopi dell’applicazione stessa, simile al metodo “Top down” nella programmazione procedurale.
Incapsulamento
Nascondere i dettagli di implementazione dietro interfacce pubbliche, controllando l’accesso ai dati tramite metodi che possono prevenirne l’usura e la non correttezza.
Differenze di Java da Altri Linguaggi
Eliminazione di strumenti “pericolosi”: Come goto e aritmetica dei puntatori.
Migliore gestione dell’incapsulamento: Accesso ai dati tramite metodi pubblici.
Origine di Java
Nato da C++: Miglioramenti sull’incapsulamento e orientamento agli oggetti.
“Puro” OOP: Java promuove la programmazione ad oggetti corretta.
Astrazione e Riuso
Astrazione: Concentrazione sui dettagli essenziali.
Riuso: Utilizzo di codice preesistente.
Paradigmi della Programmazione ad Oggetti
Incapsulamento: Controllo accesso ai dati.
Ereditarietà: Relazione tra classi.
Polimorfismo: Diverse forme di un metodo.
Utilizzo dell’Incapsulamento
L’incapsulamento in Java si ottiene dichiarando gli attributi di una classe come privati e fornendo metodi pubblici per accedervi (getter e setter). Questo permette di proteggere i dati e di controllare come vengono accessi e modificati.
Ereditarietà
L’ereditarietà è un principio che permette a una classe di ereditare attributi e metodi da un’altra classe, chiamata superclasse. In Java, si utilizza la parola chiave extends per stabilire una relazione di ereditarietà.
Parola Chiave Extends
La parola chiave extends viene utilizzata in Java per indicare che una classe deriva da un’altra classe, ereditandone attributi e metodi. Per esempio: public class Sottoclasse extends Superclasse { … }.
Ereditarietà Multipla e Interfacce
Java non supporta l’ereditarietà multipla direttamente, ma permette l’uso di interfacce per ottenere un effetto simile. Una classe può implementare più interfacce, ereditando così i metodi definiti in esse.
Modificatore Private
Il modificatore private è utilizzato per nascondere i dettagli di implementazione di una classe, rendendo gli attributi o i metodi accessibili solo all’interno della classe stessa.
Reference This
this è una parola chiave in Java che fa riferimento all’oggetto corrente su cui è invocato un metodo, permettendo di distinguere tra variabili d’istanza e parametri con lo stesso nome.
Accessibilità di Classi Private
Le classi private non sono accessibili al di fuori del file in cui sono dichiarate, garantendo un alto livello di incapsulamento e protezione dei dati.