Info
Info
Si utilizzano degli schemi (UML) → grande blocco con nome della classe in una riga sopra
+ o - in base agli operatori
attributi dichiarati con string, int, ecc…
…(perso una parte, guardare pagine teoria su Classroom
Polimorfismo – overloading, due metodi con stesso nome ma attributi e tipo di ritorno diverso. fanno
le stesse cose ma in modo diverso.
Incapsulamento – capacità di interagire con un certo oggetto tramite la sua interfaccia. Si può
interagire solo con il public → visibilità
Sicurezza – nessuno può modificare certi attributi se non tramite certe condizione decise da noi
data hiding – la persona che usa il codice non sa che esistono certi attributi nella classe e anche se lo
sapesse, non saprebbe come è stato salvato e quindi non potrebbe usarlo.
Metodo costruttore – ha lo stesso nome della classe ma non va segnato alcun tipo di ritorno. Gli
passiamo dei valori e li “associamo” agli attributi (es. matricola=m;)
Nel main va richiamato con - Studente a(..., …, …); - → evita di dover inserire ogni calore uno per
volta (a.nome, a.cognome, …)
overloading – proprietà che ci permette di creare all’interno di un oggetto due metodi con lo stesso
nome. o hanno tipo di ritorno diverso, o numero/tipo di parametri diverso
con overloading si può esprimere il polimorfismo
si usa il overloading per quanto riguarda anche i metodi costruttori
Overriding → metodo con la stessa firma definita sopra in una sottoclasse (es. gatto non fa “verso
generico”, ma “miao”)
L'overriding consente di ridefinire un metodo in una sottoclasse: il metodo originale e quello che lo
ridefinisce hanno necessariamente la stessa firma
Nell’overriding si vede maggiormente il polimorfismo
Si può accedere a un attributo privato solo nella classe stessa, non nelle sottoclassi.
PROTECTED → vi si può accedere nella classe stessa e anche nella sottoclasse, ma non all’esterno
Ereditarietà: è possibile definire delle classi che sono sottoclassi nelle altre classi
Spesso le classi hanno attributi in comune. Si può dire che tutte le classi ereditano qualcosa delle
“superclassi”
SUPERCLASSI e SOTTOCLASSI: le sottoclassi ereditano tutti gli attributi e i metodi della
superclasse.
Programmazione orientata agli oggetti (OOP): programmazione in cui i dati e i comportamenti
vengono modellati come "oggetti". l'OOP rappresenta la realtà tramite oggetti che interagiscono tra
loro. I tre concetti chiave dell’OOP sono:
- Incapsulamento: processo di nascondere i dettagli di una classe e proteggere i dati da accessi non
autorizzati, consentendo l'accesso ai membri della classe solo attraverso interfacce controllate
- Ereditarietà: permette a una classe di ereditare attributi e metodi di un’altra classe
- Polimorfismo: consente di usare oggetti di una classe derivata come se fossero della stessa classe,
sfruttando l'overloading o il overriding di metodi.
Classe: struttura che rappresenta il modello di un oggetto. Definisce attributi e metodi comuni
Oggetto: specifica istanza di una classe. Condivide le caratteristiche definite nella classe di
appartenenza e possiede dati propri che possono essere modificati tramite metodi.
Attributi: proprietà di un oggetto. Vengono definiti nella classe - dati che oggetto può avere.
Metodi: funzioni o procedure definite all'interno della classe - comportamenti dell'oggetto.
Data hiding: Nasconde agli utenti il funzionamento interno della classe e protegge i dati - private
Costruttore: metodo speciale ; stesso nome della classe ; non tipo di ritorno. Serve per inizializzare
gli attributi di un oggetto al momento della sua creazione, assegnando i valori di partenza.
Getter e Setter: metodi per leggere e modificare gli attributi di un oggetto. Il getter restituisce il
valore di un attributo, il setter permette di assegnargli un valore.
Accessibile nella classe stessa. Accessibile nella classe stessa Accessibile nella classe stessa.
Non accessibile da classi derivate. Accessibile dalle classi derivate Accessibile nelle classi derivate.
Non accessibile al di fuori della Non accessibile direttamente al di Accessibile al di fuori della classe
classe fuori della classe o della gerarchia
Superclasse: Contiene funzionalità generiche comuni a più classi
Sottoclasse: Rappresenta comportamenti o proprietà specifiche di una categoria