Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni3 pagine

Info

Caricato da

sofialisa76
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni3 pagine

Info

Caricato da

sofialisa76
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3

PROGRAMMAZIONE OGGETTI

C++ viene definito object oriented (=orientato sugli oggetti).


Rispetto alla programmazione imperativa (C) cerca di rappresentare un oggetto con comportamenti
comuni, non è più visto come un insieme di istruzioni da eseguire in ordine.
I tre punti principali sono:
- incapsulamento → permette di non esplicitare alla persona che fa il programma come lavora
il computer, ma dà un interfaccia. Non va a spiegare come funziona un programma.
- ereditarietà → se prendo un oggetto e un oggetto che deriva da quello, il derivato ha tutte le
caratteristiche dell’oggetto da cui deriva
- polimorfismo → permette di usare l’oggetto derivato come se fosse l’oggetto da cui deriva

Classe: struttura a cui fanno riferimento degli oggetti


es. Alessandro Polì, Gino Rossi e Paolo Bianchi → classe= persone
tre istanze diverse della stessa classe
Oggetto: istanza della stessa classe
oggetti della stessa classe hanno comportamenti comuni

Attributi/campi: rappresentano le caratteristiche dell’oggetto


es. nome e cognome

Metodi: comportamento dell’oggetto; ciò che un oggetto può fare


es. parlare, sedersi
I metodi sono scritti tramite funzione e procedure.

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

class→ per dichiarare la classe


public → operatore di …(boh)
attributi dichiarati con string, int, ecc…

Le classi possono interagire tra loro

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, …)

Programmazione oggetti → non più programma imperativo, ma cerchiamo di rappresentare la realtà


con una nuova logica.
Linguaggio di programmazione C++ orientato a oggetti.
Ogni entità è un oggetto e questi possono interagire tra loro.
Oggetti della stessa classe hanno comportamenti (metodi) e caratteristiche comuni (attributi).
getter → ricevi. cout stampa soltanto, mentre il metodo getter permette di fare anche altre operazioni.
Il metodo getter non richiede nessun parametro.
setter → setta, metti
per inserire, modificare o ritirare un certo attributo. Il metodo setter chiede un valore e cambia un dato
in base al valore che gli viene dato.

Operatori di visibilità → public


Incapsulamento: proprietà che permette di creare l’interfaccia
Fornire un metodo che dà l’interfaccia che può modificare l’attributo → l’utente può modificare le
informazioni secondo certe regole
es. banca → l’utente non può modificarsi il saldo, ma può fare altre operazioni

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

metodo costruttore - andare a inserire i valori negli oggetti senza …


non ha bisogno di tipo di ritorno, ha lo stesso nome della classe che abbiamo definito

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.

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
L'overloading si verifica quando si definiscono più funzioni con lo stesso nome all'interno dello
stesso ambito, ma con parametri diversi. Questo consente di utilizzare lo stesso nome per funzioni che
svolgono operazioni simili, ma con dati diversi. Polimorfismo statico
L'overriding si verifica quando una classe derivata ridefinisce una funzione virtuale della classe base,
mantenendo la stessa firma. Serve a fornire una versione specifica del metodo per la classe derivata.
Polimorfismo dinamico
Operatori di visibilità: Definiscono la visibilità e accessibilità di attributi e metodi
Private Protected Public

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

Potrebbero piacerti anche