SlideShare a Scribd company logo
1 of 12
OOP 
PROGRAMMAZIONE AD OGGETTI
Prima della OOP 
 Prima della programmazione orientata agli oggetti c’era 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. 
 L’istanza è 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 l’allocazione 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 l’interfaccia 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 all’instanziazione 
dell’oggetto e ne ritorna la relativa locazione di memoria. 
 L’operatore delete: liberare la memoria utilizzata per l’oggetto, una 
volta che non ci servirà più. 
 Per riferirci ai metodi e attributi di un oggetto, invece del punto 
usiamo l’operatore 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 
all’interno 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

Python unit 3 m.sc cs
Python unit 3 m.sc csPython unit 3 m.sc cs
Python unit 3 m.sc csKALAISELVI P
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects yndaravind
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in javaHitesh Kumar
 
Programación Orientada a Objetos en Java
Programación Orientada a Objetos en JavaProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en JavaDaniel Irene
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programmingRiccardo Cardin
 
Classes,object and methods java
Classes,object and methods javaClasses,object and methods java
Classes,object and methods javaPadma Kannan
 
WHAT IS ABSTRACTION IN JAVA
WHAT IS ABSTRACTION IN JAVAWHAT IS ABSTRACTION IN JAVA
WHAT IS ABSTRACTION IN JAVAsivasundari6
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in javaAhsan Raja
 
Standard template library
Standard template libraryStandard template library
Standard template libraryJancypriya M
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryGauravPatil318
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classesShreyans Pathak
 
Object oriented programming concepts
Object oriented programming conceptsObject oriented programming concepts
Object oriented programming conceptsrahuld115
 

What's hot (20)

Inheritance and Polymorphism
Inheritance and PolymorphismInheritance and Polymorphism
Inheritance and Polymorphism
 
Python unit 3 m.sc cs
Python unit 3 m.sc csPython unit 3 m.sc cs
Python unit 3 m.sc cs
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects
 
Java static keyword
Java static keywordJava static keyword
Java static keyword
 
Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)
 
Classes and objects in c++
Classes and objects in c++Classes and objects in c++
Classes and objects in c++
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
 
Generics
GenericsGenerics
Generics
 
Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
 
Programación Orientada a Objetos en Java
Programación Orientada a Objetos en JavaProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java
 
Java - Generic programming
Java - Generic programmingJava - Generic programming
Java - Generic programming
 
Classes,object and methods java
Classes,object and methods javaClasses,object and methods java
Classes,object and methods java
 
WHAT IS ABSTRACTION IN JAVA
WHAT IS ABSTRACTION IN JAVAWHAT IS ABSTRACTION IN JAVA
WHAT IS ABSTRACTION IN JAVA
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in java
 
Standard template library
Standard template libraryStandard template library
Standard template library
 
Java Collections Tutorials
Java Collections TutorialsJava Collections Tutorials
Java Collections Tutorials
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classes
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
Object oriented programming concepts
Object oriented programming conceptsObject oriented programming concepts
Object oriented programming concepts
 

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
 
(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 ...
 
Digital Marketing
Digital MarketingDigital Marketing
Digital Marketing
 
Programmaoggetti[1]
Programmaoggetti[1]Programmaoggetti[1]
Programmaoggetti[1]
 
Lezione android esercizi
Lezione android esercizi Lezione android esercizi
Lezione android esercizi
 
Lezione Android prima parte
Lezione Android prima parteLezione Android prima parte
Lezione Android prima parte
 
Terza lezioneandroid
Terza lezioneandroidTerza lezioneandroid
Terza lezioneandroid
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Similar to Programmazione ad oggetti

Similar to Programmazione ad oggetti (20)

Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
 
Py t3 python-oggetti
Py t3 python-oggettiPy t3 python-oggetti
Py t3 python-oggetti
 
Object oriented
Object orientedObject oriented
Object oriented
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
[Objective-C] - Introduzione
[Objective-C] - Introduzione[Objective-C] - Introduzione
[Objective-C] - Introduzione
 
Concetti Oo Classe
Concetti Oo ClasseConcetti Oo Classe
Concetti Oo Classe
 
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)
 
Corso Java
Corso JavaCorso Java
Corso Java
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Java OCA teoria 4
Java OCA teoria 4Java OCA teoria 4
Java OCA teoria 4
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1
 
Lezione01
Lezione01Lezione01
Lezione01
 
Lezione01
Lezione01Lezione01
Lezione01
 
Pensiero Orientato Agli Oggetti
Pensiero Orientato Agli OggettiPensiero Orientato Agli Oggetti
Pensiero Orientato Agli Oggetti
 
Data base elvira asile
Data base elvira asileData base elvira asile
Data base elvira asile
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Programmazione in Java Lezione 1
Programmazione in Java Lezione 1Programmazione in Java Lezione 1
Programmazione in Java Lezione 1
 
C# Language Evolution
C# Language EvolutionC# Language Evolution
C# Language Evolution
 
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
 

More from Lorena Rojas

More from Lorena Rojas (6)

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

Recently uploaded

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaStefano Lariccia
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaRafael Figueredo
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaRafael Figueredo
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxMartin M Flynn
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiorevaleriodinoia35
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldivaleriodinoia35
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaStefano Lariccia
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativovaleriodinoia35
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.giuliofiorerm
 

Recently uploaded (9)

XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia RomanaXIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
XIII Lezione - Arabo G.Rammo @ Libera Accademia Romana
 
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla CresimaIL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
IL CHIAMATO ALLA CONVERSIONE - catechesi per candidati alla Cresima
 
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla CresimaCON OCCHI DIVERSI - catechesi per candidati alla Cresima
CON OCCHI DIVERSI - catechesi per candidati alla Cresima
 
San Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptxSan Giorgio e la leggenda del drago.pptx
San Giorgio e la leggenda del drago.pptx
 
Esperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superioreEsperimenti_laboratorio di fisica per la scuola superiore
Esperimenti_laboratorio di fisica per la scuola superiore
 
lezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldilezione di fisica_I moti nel piano_Amaldi
lezione di fisica_I moti nel piano_Amaldi
 
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia RomanaXI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
 
Corso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativoCorso di digitalizzazione e reti per segretario amministrativo
Corso di digitalizzazione e reti per segretario amministrativo
 
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
RICERCA_SUGLI ANFIBI PER LA PRIMA MEDIA.
 

Programmazione ad oggetti

  • 2. Prima della OOP  Prima della programmazione orientata agli oggetti c’era 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.  L’istanza è 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 l’allocazione 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 l’interfaccia 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 all’instanziazione dell’oggetto e ne ritorna la relativa locazione di memoria.  L’operatore delete: liberare la memoria utilizzata per l’oggetto, una volta che non ci servirà più.  Per riferirci ai metodi e attributi di un oggetto, invece del punto usiamo l’operatore 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 all’interno 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