際際滷

際際滷Share a Scribd company logo
OOP 
PROGRAMMAZIONE AD OGGETTI
Prima della OOP 
 Prima della programmazione orientata agli oggetti cera un tipo di 
programmazione non strutturata, il programma era costituito solo 
da un blocco di codice detto main, i dati venivano manipolati in 
maniera sequenziale ed erano rappresentati da variabili di tipo 
globale, insomma era un tipo di programmazione limitata e piena di 
svantaggi. 
 Successivamente si usava la programmazione procedurale 
 La programmazione modulare 
 E infine quella orientata ad oggetti
La OOP 
 La programmazione ad oggetti 竪 un sistema complesso, viene visto 
come un insieme di oggetti che interagiscono tra loro, questi sono 
caratterizzati da attributi e metodi. 
 La classe serve a modellare un insieme di oggetti dello stesso tipo. 
 La programmazione orientata agli oggetti si basa su alcuni concetti 
fondamentali: 
 Classe 
 Incapsulamento 
 Oggetto 
 Ereditariet 
 Polimorfismo
CLASSE 
 E un raggruppamento degli oggetti con la stessa propriet, cio竪 le 
sue caratteristiche e gli stessi metodi, cio竪 le azioni che possono 
compiere. 
 Una classe funge da tipo per un determinato oggetto ad essa 
appartenente. 
 Listanza 竪 un determinato oggetto di una classe. 
 La classe 竪 dotata da un interfaccia e un corpo. 
 Gli oggetti invece comunicano tra loro tramite la loro interfaccia
Incapsulamento 
 L'incapsulamento 竪 un meccanismo che raccoglie i dati e i metodi 
all'interno di una struttura nascondendo l'implementazione 
dell'oggetto, cio竪 impedendo l'accesso ai dati con altri mezzi diversi 
dai servizi proposti. 
 Permette di garantire l'integrit dei dati contenuti nell'oggetto. 
 Possiamo definire dei livelli di visibilit degli elementi della classe: 
privato, pubblico e protetto; definiscono i diritti di accesso ai dati, 
secondo la classe dalla quale si accede. 
 Privato: classi esterne non possono accedere 
 Pubblico: tutte le classi, anche esterne possono accedervi 
 Protetto; ci accedono le classi ereditarie
Costruttori e Distruttori 
 Costruttori: funzioni che creano un oggetto, devono essere 
richiamati ogni volta che si vuole istanziare un oggetto. 
Conversione(); 
 Distruttori: distruggono un oggetto, ne elliminano lallocazione di 
memoria. 
~Conversione();
Interazione tra oggetti 
 Un oggetto invoca il metodo di un altro oggetto quando vuole 
avere delle informazioni sul secondo o quando vuole modificarne lo 
stato, quindi quando vuole conoscere o modificare i suoi attributi.
Creazione di una classe 
 Per definire una classe usiamo la parola class, che ci permette di 
definire linterfaccia della classe, seguita dal nome della classe; poi 
dichiariamo gli elementi protetti e privati: 
class esempio{ 
public: 
a; 
b; 
private: 
c; 
protected: 
d; 
}
Operatori 
 L operatore new: alloca la memoria necessaria allinstanziazione 
delloggetto e ne ritorna la relativa locazione di memoria. 
 Loperatore delete: liberare la memoria utilizzata per loggetto, una 
volta che non ci servir pi湛. 
 Per riferirci ai metodi e attributi di un oggetto, invece del punto 
usiamo loperatore freccia(->)
Classe Astratta 
 Le classi astratte sono le classi prive di corpo, da sola non pu嘆 
essere istanziata, viene usata solo per svolgere la funzione di classe 
base, da cui le classi derivate possono ereditarei metodi. 
Dichiarazione: abstract class NomeClasse 
 tecnicamente non si possono creare oggetti della classe, 
logicamente i suoi oggetti sono solo oggetti delle sottoclassi.
Overloading 
  una funzionalit specifica del C++ 
 Permette di poter usare lo stesso nome per una funzione pi湛 volte 
allinterno dello stesso programma, a patto che gli argomenti forniti 
siano diversi
I tipi di linguaggi 
 Linguaggi puri: ogni cosa 竪 un oggetto 
- Smalltalk 
- Eiffel 
 Linguaggi ibridi: alcuni tipi di dati non sono oggetti 
 C++ 
 Java 
 Visual basic

More Related Content

What's hot (20)

Exception handling and templates
Exception handling and templatesException handling and templates
Exception handling and templates
farhan amjad
Generics
GenericsGenerics
Generics
Ravi_Kant_Sahu
Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methods
Shubham Dwivedi
Constructor and destructor in oop
Constructor and destructor in oop Constructor and destructor in oop
Constructor and destructor in oop
Samad Qazi
Generics in java
Generics in javaGenerics in java
Generics in java
suraj pandey
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
Matteo Valoriani
Namespaces
NamespacesNamespaces
Namespaces
Sangeetha S
Lecture 2
Lecture 2Lecture 2
Lecture 2
emailharmeet
[OOP - Lec 02] Why do we need OOP
[OOP - Lec 02] Why do we need OOP[OOP - Lec 02] Why do we need OOP
[OOP - Lec 02] Why do we need OOP
Muhammad Hammad Waseem
Oops ppt
Oops pptOops ppt
Oops ppt
abhayjuneja
Id and class selector
Id and class selectorId and class selector
Id and class selector
MyCredentials YourReference
C# Encapsulation
C# EncapsulationC# Encapsulation
C# Encapsulation
Prem Kumar Badri
Polymorphism in java
Polymorphism in javaPolymorphism in java
Polymorphism in java
Elizabeth alexander
Generics
GenericsGenerics
Generics
Kongu Engineering College, Perundurai, Erode
Operators in java
Operators in javaOperators in java
Operators in java
yugandhar vadlamudi
Python-Classes.pptx
Python-Classes.pptxPython-Classes.pptx
Python-Classes.pptx
Karudaiyar Ganapathy
Packages
PackagesPackages
Packages
Monika Mishra
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
Hitesh Kumar
XSLT.ppt
XSLT.pptXSLT.ppt
XSLT.ppt
KGSCSEPSGCT
C++ And Object in lecture3
C++  And Object in lecture3C++  And Object in lecture3
C++ And Object in lecture3
UniSoftCorner Pvt Ltd India.

Viewers also liked (8)

Lezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb AccenniLezione 10 - Programmazione Ad Oggetti, Vb Accenni
Lezione 10 - Programmazione Ad Oggetti, Vb Accenni
Rice Cipriani
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...(E book ita) java   introduzione alla programmazione orientata ad oggetti in ...
(E book ita) java introduzione alla programmazione orientata ad oggetti in ...
Raffaella D'angelo
Digital Marketing
Digital MarketingDigital Marketing
Digital Marketing
Atul Sharma
Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]
Anna_1969
Lezione android esercizi
Lezione android esercizi Lezione android esercizi
Lezione android esercizi
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione Android prima parte
Lezione Android prima parteLezione Android prima parte
Lezione Android prima parte
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Terza lezioneandroid
Terza lezioneandroidTerza lezioneandroid
Terza lezioneandroid
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
Seth Familian

Similar to Programmazione ad oggetti (20)

Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
Giovanni Carbonara
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
Felice Pescatore
Py t3 python-oggetti
Py t3 python-oggettiPy t3 python-oggetti
Py t3 python-oggetti
Majong DevJfu
Object oriented
Object orientedObject oriented
Object oriented
KingRace97
[Objective-C] - Introduzione
[Objective-C] - Introduzione[Objective-C] - Introduzione
[Objective-C] - Introduzione
Jacopo Di Stanislao
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
From The Front
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
I.S.I.S. "Antonio Serra" - Napoli
Java OCA teoria 4
Java OCA teoria 4Java OCA teoria 4
Java OCA teoria 4
Valerio Radice
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1
Christian Nastasi
Lezione01
Lezione01Lezione01
Lezione01
robynho86
Lezione01
Lezione01Lezione01
Lezione01
robynho86
Introduzione alla Programmazione ad oggetti - classi-python.pptx
Introduzione alla Programmazione ad oggetti - classi-python.pptxIntroduzione alla Programmazione ad oggetti - classi-python.pptx
Introduzione alla Programmazione ad oggetti - classi-python.pptx
SpazimmensiNoLimits
Pensiero Orientato Agli Oggetti
Pensiero Orientato Agli OggettiPensiero Orientato Agli Oggetti
Pensiero Orientato Agli Oggetti
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
Sergio Ronchi
Programmazione in Java Lezione 1
Programmazione in Java Lezione 1Programmazione in Java Lezione 1
Programmazione in Java Lezione 1
I.S.I.S. "Antonio Serra" - Napoli
C# Language Evolution
C# Language EvolutionC# Language Evolution
C# Language Evolution
Marco Parenzan
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
Onofrio Panzarino
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
Giovanni Carbonara
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
Felice Pescatore
Py t3 python-oggetti
Py t3 python-oggettiPy t3 python-oggetti
Py t3 python-oggetti
Majong DevJfu
Object oriented
Object orientedObject oriented
Object oriented
KingRace97
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. pu嘆.. fare! (di Mirko Ravaioli)
From The Front
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1
Christian Nastasi
Lezione01
Lezione01Lezione01
Lezione01
robynho86
Lezione01
Lezione01Lezione01
Lezione01
robynho86
Introduzione alla Programmazione ad oggetti - classi-python.pptx
Introduzione alla Programmazione ad oggetti - classi-python.pptxIntroduzione alla Programmazione ad oggetti - classi-python.pptx
Introduzione alla Programmazione ad oggetti - classi-python.pptx
SpazimmensiNoLimits
C# Language Evolution
C# Language EvolutionC# Language Evolution
C# Language Evolution
Marco Parenzan
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
Onofrio Panzarino

More from Lorena Rojas (6)

FLAT DESIGNFLAT DESIGN
FLAT DESIGN
Lorena Rojas
Strutture dinamiche e astratte
Strutture dinamiche e astratteStrutture dinamiche e astratte
Strutture dinamiche e astratte
Lorena Rojas
Funzioni ricorsive
Funzioni ricorsiveFunzioni ricorsive
Funzioni ricorsive
Lorena Rojas
Funzioni
FunzioniFunzioni
Funzioni
Lorena Rojas
Puntatori C++
Puntatori C++Puntatori C++
Puntatori C++
Lorena Rojas
Creazione blog
Creazione blogCreazione blog
Creazione blog
Lorena Rojas
FLAT DESIGNFLAT DESIGN
FLAT DESIGN
Lorena Rojas
Strutture dinamiche e astratte
Strutture dinamiche e astratteStrutture dinamiche e astratte
Strutture dinamiche e astratte
Lorena Rojas
Funzioni ricorsive
Funzioni ricorsiveFunzioni ricorsive
Funzioni ricorsive
Lorena Rojas

Recently uploaded (18)

Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra

Programmazione ad oggetti

  • 2. Prima della OOP Prima della programmazione orientata agli oggetti cera un tipo di programmazione non strutturata, il programma era costituito solo da un blocco di codice detto main, i dati venivano manipolati in maniera sequenziale ed erano rappresentati da variabili di tipo globale, insomma era un tipo di programmazione limitata e piena di svantaggi. Successivamente si usava la programmazione procedurale La programmazione modulare E infine quella orientata ad oggetti
  • 3. La OOP La programmazione ad oggetti 竪 un sistema complesso, viene visto come un insieme di oggetti che interagiscono tra loro, questi sono caratterizzati da attributi e metodi. La classe serve a modellare un insieme di oggetti dello stesso tipo. La programmazione orientata agli oggetti si basa su alcuni concetti fondamentali: Classe Incapsulamento Oggetto Ereditariet Polimorfismo
  • 4. CLASSE E un raggruppamento degli oggetti con la stessa propriet, cio竪 le sue caratteristiche e gli stessi metodi, cio竪 le azioni che possono compiere. Una classe funge da tipo per un determinato oggetto ad essa appartenente. Listanza 竪 un determinato oggetto di una classe. La classe 竪 dotata da un interfaccia e un corpo. Gli oggetti invece comunicano tra loro tramite la loro interfaccia
  • 5. Incapsulamento L'incapsulamento 竪 un meccanismo che raccoglie i dati e i metodi all'interno di una struttura nascondendo l'implementazione dell'oggetto, cio竪 impedendo l'accesso ai dati con altri mezzi diversi dai servizi proposti. Permette di garantire l'integrit dei dati contenuti nell'oggetto. Possiamo definire dei livelli di visibilit degli elementi della classe: privato, pubblico e protetto; definiscono i diritti di accesso ai dati, secondo la classe dalla quale si accede. Privato: classi esterne non possono accedere Pubblico: tutte le classi, anche esterne possono accedervi Protetto; ci accedono le classi ereditarie
  • 6. Costruttori e Distruttori Costruttori: funzioni che creano un oggetto, devono essere richiamati ogni volta che si vuole istanziare un oggetto. Conversione(); Distruttori: distruggono un oggetto, ne elliminano lallocazione di memoria. ~Conversione();
  • 7. Interazione tra oggetti Un oggetto invoca il metodo di un altro oggetto quando vuole avere delle informazioni sul secondo o quando vuole modificarne lo stato, quindi quando vuole conoscere o modificare i suoi attributi.
  • 8. Creazione di una classe Per definire una classe usiamo la parola class, che ci permette di definire linterfaccia della classe, seguita dal nome della classe; poi dichiariamo gli elementi protetti e privati: class esempio{ public: a; b; private: c; protected: d; }
  • 9. Operatori L operatore new: alloca la memoria necessaria allinstanziazione delloggetto e ne ritorna la relativa locazione di memoria. Loperatore delete: liberare la memoria utilizzata per loggetto, una volta che non ci servir pi湛. Per riferirci ai metodi e attributi di un oggetto, invece del punto usiamo loperatore freccia(->)
  • 10. Classe Astratta Le classi astratte sono le classi prive di corpo, da sola non pu嘆 essere istanziata, viene usata solo per svolgere la funzione di classe base, da cui le classi derivate possono ereditarei metodi. Dichiarazione: abstract class NomeClasse tecnicamente non si possono creare oggetti della classe, logicamente i suoi oggetti sono solo oggetti delle sottoclassi.
  • 11. Overloading una funzionalit specifica del C++ Permette di poter usare lo stesso nome per una funzione pi湛 volte allinterno dello stesso programma, a patto che gli argomenti forniti siano diversi
  • 12. I tipi di linguaggi Linguaggi puri: ogni cosa 竪 un oggetto - Smalltalk - Eiffel Linguaggi ibridi: alcuni tipi di dati non sono oggetti C++ Java Visual basic