SlideShare a Scribd company logo
1 of 17
OBJECT - ORIENTED PROGRAMMING
Prof. Giovanni Carbonara
LA PROGRAMMAZIONE AD OGGETTI
La programmazione a oggetti si propone come una nuova
metodologia, con un approccio risolutivo completamente diverso,
l’approccio a oggetti. L’utilizzo di linguaggi orientati agli oggetti
costringe il programmatore ad adottare nuove metodologie di
programmazione.
L’impiego di un linguaggio OOP impone l’utilizzo dei principi
fondamentali della programmazione a oggetti, che si possono
riassumere in modularità, incapsulamento, protezione
dell’informazione, che sono le caratteristiche richieste al software di
buona qualità.
Con la programmazione a oggetti è possibile modellare la realtà in
modo più naturale e vicino all’uomo, offrendo nuovi strumenti con
cui poter descrivere tutti i livelli di astrazione del sistema software
nelle varie fasi della sua progettazione.
ASTRAZIONE
L’astrazione è il risultato di un processo, detto appunto
astrazione, secondo il quale, assegnato un sistema,
complesso quanto si voglia, si possono tenere nascosti
alcuni particolari evidenziando quelli che si ritengono
essenziali ai fini della corretta comprensione del
sistema.
L’astrazione nasce dall’individuazione di proprietà simili
tra certi oggetti, situazioni o processi del mondo reale e
dalla decisione di concentrarsi su queste proprietà simili
e di ignorare temporaneamente, le loro differenze.
LIVELLI DI ASTRAZIONE
L'informatica presenta comunemente livelli di astrazione,
dove ogni livello rappresenta un diverso modello della
stessa informazione o processo, ma usa un sistema di
espressione che implica un diverso set di oggetti e
composizioni che si applicano solo ad un particolare
dominio. I livelli più "alti" di astrazione tendono a
costruirsi su qualcosa di relativamente concreto, mentre
quelli più "bassi" tendono a dare progressivamente una
rappresentazione più "granulare".
OGGETTI, METODI, ATTRIBUTI, CLASSI
Gli oggetti sono raccolti in classi, che definiscono proprietà (attributi) e
metodi comuni a tutti gli oggetti (istanze) di un certo tipo.
Mediante il procedimento di astrazione, gli oggetti fisici vengono virtualizzati
in oggetti software che offrono le stesse informazioni e servizi degli oggetti
reali. Si scompone il sistema reale preso in esame in classi di oggetti,
ognuna delle quali possiede le proprie variabili e funzioni, che assumono il
nome di attributi (caratteristiche specifiche) e metodi (comportamenti
uguali).
I metodi possono essere di tre tipi, classificati in base al tipo di operazioni
che eseguono:
•costruttori, per creare gli oggetti della classe;
•visualizzatori, per accedere ai valori delle variabili;
•modificatori, per modificare i valori delle variabili.
EREDITARIETA’, INCAPSULAMENTO, POLIMORFISMO
La classe è l’elemento base della OOP, un programma a oggetti è
costituito da un insieme di classi che generano oggetti che
comunicano tra loro. Se una classe non soddisfa appieno le
esigenze specifiche di un caso particolare è possibile completarla,
aggiungendole tutto quello che necessita per la nuova esigenza. Si
parla di classe ereditata e l’ereditarietà è la vera potenzialità della
OOP, che va oltre realizzando quello che comunemente prende il
nome di information hiding, cioè l’incapsulamento all’interno della
classe sia della rappresentazione dei dati sia delle elaborazioni che
possono essere eseguite su di essi. Un’ulteriore caratteristica della
OOP è quella che prende il nome di polimorfismo, ovvero la
possibilità di applicare lo stesso operatore a classi diverse.
OGGETTI, CLASSI, VISIBILITA’ E
INCAPSULAMENTO
OGGETTI
Gli oggetti sono le istanze delle classi, quindi oggetti della stessa classe si
differenziano tra loro per le loro proprietà (attributi), ma hanno in comune
con tutti gli altri oggetti il comportamento.
Un oggetto è un’entità astratta dotata di specifici attributi e in grado di
cooperare con altri oggetti svolgendo specifiche azioni.
Un oggetto è quindi la rappresentazione di una qualsiasi cosa che ha uno
stato e un comportamento.
La creazione di un oggetto non è altro che l’allocazione in memoria dello
spazio necessario per utilizzare questo elemento, ovvero si memorizza lo
stato corrente dell’oggetto.
Gli attributi di istanza sono quelli di cui un oggetto dispone, detti anche più
semplicemente attributi, un attributo costante è un attributo il cui valore non
cambia nel tempo ma resta invariato. Un metodo di istanza è un metodo
che, per essere utilizzato, necessita della creazione di un oggetto della
classe a cui appartiene, su cui essere invocato.
CLASSI
Una classe è un modello per un insieme di oggetti analoghi, caratterizzati:
•dalla stessa rappresentazione interna;
•dalle stesse operazioni con lo stesso funzionamento.
Possiamo definire la classe come lo schema di base dal quale è possibile
creare i singoli oggetti, attributi e metodi di una classe sono detti membri
della classe.
Un attributo di classe è un attributo condiviso da tutte le istanze della
classe, ovvero da tutti gli oggetti creati con essa. Un metodo è un’azione
che può essere eseguita dall’oggetto. Un metodo di classe è un metodo
invocabile sulla classe stessa senza che sia necessario istanziare un
oggetto.
La definizione della classe deve naturalmente sempre precedere la
creazione dell’oggetto. La classe è un elemento statico, gli oggetti
appartenenti alla classe sono elementi dinamici.
PUBBLICO E PRIVATO
La parte pubblica di una classe, costituita dall’insieme
dei metodi e degli attributi public, costituisce l’interfaccia
che ha lo scopo di dichiarare che cosa può fare la classe
e come può essere utilizzata da un utente. La parte
privata, costituita dall’insieme dei metodi e degli attributi
private, di una classe definisce come lavora la classe.
INCAPSULAMENTO
Con il termine incapsulamento si intende il meccanismo
che permette di racchiudere all’interno della stessa
struttura sia dati che codice, in altre parole, una scatola
che protegge i propri dati e il proprio codice tramite
l’incapsulamento, dove i dati descrivono l’oggetto e il
codice opera sui dati dell’oggetto. Questo principio
prevede che si possa accedere alle informazioni di un
oggetto unicamente attraverso i suoi metodi, che
rappresentano l’interfaccia dell’oggetto.
METODI COSTRUTTORI,
DISTRUTTORI E OVERLOADING
COSTRUTTORE, DISTRUTTORE
Il metodo costruttore è quel particolare metodo che viene invocato alla
creazione dell’oggetto e che contiene tutte le istruzioni da eseguire per la
sua inizializzazione. Può essere definito anche un metodo costruttore con
parametri, in questo caso non sarà possibile instanziare la classe senza
passare i parametri. Un metodo costruttore è un metodo particolare che si
distingue dagli altri per tre elementi:
•ha lo stesso nome della classe;
•non ha tipo di ritorno, nemmeno void;
•ha visibilità public.
Il metodo distruttore è quel particolare metodo che si occupa di rilasciare le
risorse.
OVERLOADING
Una classe può contenere più costruttori e metodi con lo stesso
nome purché distinti da diverse intestazioni:
•con un numero diverso di parametri (forma numerica);
•con numero uguale di parametri ma di tipo diverso (forma tipale);
•numero e tipo di parametri è lo stesso, ma la loro posizione è
scambiata (forma posizionale).
Si dice anche che l’overloading consente di sovraccaricare il
metodo con più di un significato.
EREDITARIETA’ E
POLIMORFISMO
EREDITARIETA’
L’ereditarietà è un’importante funzionalità della OOP che permette
di definire nuove classi partendo da classi sviluppate in
precedenza. La nuova classe viene definita esprimendo solamente
le differenze che essa possiede rispetto alla classe di partenza. La
classe antenato di una nuova classe prende il nome di superclasse,
la classe discendente di una classe esistente prende il nome di
sottoclasse. Ogni sottoclasse eredita le caratteristiche della sua
superclasse.
POLIMORFISMO
In informatica, il termine polimorfismo (dal greco "avere molte forme") viene usato in
senso generico per riferirsi a espressioni che possono rappresentare valori di diversi
tipi (dette espressioni polimorfiche). Una funzione si dice polimorfa se è capace di
operare su oggetti di tipo diverso specializzando il suo comportamento in base al tipo
di oggetto su cui agisce. Il termine polimorfismo indica la possibilità di implementare
in modo speciale metodi e proprietà ereditati dalla classe antenato mantenendone il
nome.
Il polimorfismo per metodi è la modalità operativa che permette di utilizzare lo stesso
nome per metodi differenti e viene realizzato in due modi:
•mediante l’overloading, che significa letteralmente “sovraccaricare” ed indica la
possibilità di definire metodi che hanno lo stesso nome ma firma differente;
•mediante l’overridding, che significa letteralmente “sovrascrittura” ed indica la
possibilità che le sottoclassi hanno di ridefinire un metodo ereditato da una
superclasse, in questo caso si deve utilizzare la stessa identica firma.
Il polimorfismo per dati o per classi è il meccanismo che permette di assegnare un
riferimento di una superclasse all’istanza di una sottoclasse.

More Related Content

Similar to Object oriented programming

Object oriented
Object orientedObject oriented
Object orientedKingRace97
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1Christian Nastasi
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereMatteo Valoriani
 
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...Robotica educativa la robotica da strumento di fantasia a strumento per la fa...
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...Alessandri Giuseppe
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignLuca Milan
 
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...NicolettaGiurgevich
 
Metodologia e Tecniche della Ricerca Sociale
Metodologia e Tecniche della Ricerca SocialeMetodologia e Tecniche della Ricerca Sociale
Metodologia e Tecniche della Ricerca Socialeamandadrafe
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object OrientedStefano Fago
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiGiuseppe Cramarossa
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experienceStefano Bussolon
 

Similar to Object oriented programming (20)

Object oriented
Object orientedObject oriented
Object oriented
 
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
 
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...Robotica educativa la robotica da strumento di fantasia a strumento per la fa...
Robotica educativa la robotica da strumento di fantasia a strumento per la fa...
 
Approccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven DesignApproccio Pratico al Domain Driven Design
Approccio Pratico al Domain Driven Design
 
OOP with C#
OOP with C#OOP with C#
OOP with C#
 
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...
Extended Summary of " A Conceptual Bio-Inspired Framework for the Evolution o...
 
Vb.net
 Vb.net Vb.net
Vb.net
 
Metodologia e Tecniche della Ricerca Sociale
Metodologia e Tecniche della Ricerca SocialeMetodologia e Tecniche della Ricerca Sociale
Metodologia e Tecniche della Ricerca Sociale
 
Riuso Object Oriented
Riuso Object OrientedRiuso Object Oriented
Riuso Object Oriented
 
Concetti Oo Classe
Concetti Oo ClasseConcetti Oo Classe
Concetti Oo Classe
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggetti
 
[Objective-C] - Introduzione
[Objective-C] - Introduzione[Objective-C] - Introduzione
[Objective-C] - Introduzione
 
Pensiero Orientato Agli Oggetti
Pensiero Orientato Agli OggettiPensiero Orientato Agli Oggetti
Pensiero Orientato Agli Oggetti
 
Corso Java 1 - BASE
Corso Java 1 - BASECorso Java 1 - BASE
Corso Java 1 - BASE
 
La grammatica della user experience
La grammatica della user experienceLa grammatica della user experience
La grammatica della user experience
 
Metodi Per Riutilizzare Programmi Oo
Metodi Per Riutilizzare Programmi OoMetodi Per Riutilizzare Programmi Oo
Metodi Per Riutilizzare Programmi Oo
 

More from Giovanni Carbonara

More from Giovanni Carbonara (7)

Soluzioni server linux
Soluzioni server   linuxSoluzioni server   linux
Soluzioni server linux
 
Soluzioni server microsoft
Soluzioni server   microsoftSoluzioni server   microsoft
Soluzioni server microsoft
 
Soluzioni server
Soluzioni serverSoluzioni server
Soluzioni server
 
DATABASE (Basi di dati)
DATABASE (Basi di dati)DATABASE (Basi di dati)
DATABASE (Basi di dati)
 
Le Reti di Computer
Le Reti di ComputerLe Reti di Computer
Le Reti di Computer
 
Il sistema informativo
Il sistema informativoIl sistema informativo
Il sistema informativo
 
L'azienda
L'aziendaL'azienda
L'azienda
 

Recently uploaded

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 

Recently uploaded (9)

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
 
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
 
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
 
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
 
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
 
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
 
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.
 
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
 
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
 

Object oriented programming

  • 1. OBJECT - ORIENTED PROGRAMMING Prof. Giovanni Carbonara
  • 2. LA PROGRAMMAZIONE AD OGGETTI La programmazione a oggetti si propone come una nuova metodologia, con un approccio risolutivo completamente diverso, l’approccio a oggetti. L’utilizzo di linguaggi orientati agli oggetti costringe il programmatore ad adottare nuove metodologie di programmazione. L’impiego di un linguaggio OOP impone l’utilizzo dei principi fondamentali della programmazione a oggetti, che si possono riassumere in modularità, incapsulamento, protezione dell’informazione, che sono le caratteristiche richieste al software di buona qualità. Con la programmazione a oggetti è possibile modellare la realtà in modo più naturale e vicino all’uomo, offrendo nuovi strumenti con cui poter descrivere tutti i livelli di astrazione del sistema software nelle varie fasi della sua progettazione.
  • 3. ASTRAZIONE L’astrazione è il risultato di un processo, detto appunto astrazione, secondo il quale, assegnato un sistema, complesso quanto si voglia, si possono tenere nascosti alcuni particolari evidenziando quelli che si ritengono essenziali ai fini della corretta comprensione del sistema. L’astrazione nasce dall’individuazione di proprietà simili tra certi oggetti, situazioni o processi del mondo reale e dalla decisione di concentrarsi su queste proprietà simili e di ignorare temporaneamente, le loro differenze.
  • 4. LIVELLI DI ASTRAZIONE L'informatica presenta comunemente livelli di astrazione, dove ogni livello rappresenta un diverso modello della stessa informazione o processo, ma usa un sistema di espressione che implica un diverso set di oggetti e composizioni che si applicano solo ad un particolare dominio. I livelli più "alti" di astrazione tendono a costruirsi su qualcosa di relativamente concreto, mentre quelli più "bassi" tendono a dare progressivamente una rappresentazione più "granulare".
  • 5. OGGETTI, METODI, ATTRIBUTI, CLASSI Gli oggetti sono raccolti in classi, che definiscono proprietà (attributi) e metodi comuni a tutti gli oggetti (istanze) di un certo tipo. Mediante il procedimento di astrazione, gli oggetti fisici vengono virtualizzati in oggetti software che offrono le stesse informazioni e servizi degli oggetti reali. Si scompone il sistema reale preso in esame in classi di oggetti, ognuna delle quali possiede le proprie variabili e funzioni, che assumono il nome di attributi (caratteristiche specifiche) e metodi (comportamenti uguali). I metodi possono essere di tre tipi, classificati in base al tipo di operazioni che eseguono: •costruttori, per creare gli oggetti della classe; •visualizzatori, per accedere ai valori delle variabili; •modificatori, per modificare i valori delle variabili.
  • 6. EREDITARIETA’, INCAPSULAMENTO, POLIMORFISMO La classe è l’elemento base della OOP, un programma a oggetti è costituito da un insieme di classi che generano oggetti che comunicano tra loro. Se una classe non soddisfa appieno le esigenze specifiche di un caso particolare è possibile completarla, aggiungendole tutto quello che necessita per la nuova esigenza. Si parla di classe ereditata e l’ereditarietà è la vera potenzialità della OOP, che va oltre realizzando quello che comunemente prende il nome di information hiding, cioè l’incapsulamento all’interno della classe sia della rappresentazione dei dati sia delle elaborazioni che possono essere eseguite su di essi. Un’ulteriore caratteristica della OOP è quella che prende il nome di polimorfismo, ovvero la possibilità di applicare lo stesso operatore a classi diverse.
  • 8. OGGETTI Gli oggetti sono le istanze delle classi, quindi oggetti della stessa classe si differenziano tra loro per le loro proprietà (attributi), ma hanno in comune con tutti gli altri oggetti il comportamento. Un oggetto è un’entità astratta dotata di specifici attributi e in grado di cooperare con altri oggetti svolgendo specifiche azioni. Un oggetto è quindi la rappresentazione di una qualsiasi cosa che ha uno stato e un comportamento. La creazione di un oggetto non è altro che l’allocazione in memoria dello spazio necessario per utilizzare questo elemento, ovvero si memorizza lo stato corrente dell’oggetto. Gli attributi di istanza sono quelli di cui un oggetto dispone, detti anche più semplicemente attributi, un attributo costante è un attributo il cui valore non cambia nel tempo ma resta invariato. Un metodo di istanza è un metodo che, per essere utilizzato, necessita della creazione di un oggetto della classe a cui appartiene, su cui essere invocato.
  • 9. CLASSI Una classe è un modello per un insieme di oggetti analoghi, caratterizzati: •dalla stessa rappresentazione interna; •dalle stesse operazioni con lo stesso funzionamento. Possiamo definire la classe come lo schema di base dal quale è possibile creare i singoli oggetti, attributi e metodi di una classe sono detti membri della classe. Un attributo di classe è un attributo condiviso da tutte le istanze della classe, ovvero da tutti gli oggetti creati con essa. Un metodo è un’azione che può essere eseguita dall’oggetto. Un metodo di classe è un metodo invocabile sulla classe stessa senza che sia necessario istanziare un oggetto. La definizione della classe deve naturalmente sempre precedere la creazione dell’oggetto. La classe è un elemento statico, gli oggetti appartenenti alla classe sono elementi dinamici.
  • 10. PUBBLICO E PRIVATO La parte pubblica di una classe, costituita dall’insieme dei metodi e degli attributi public, costituisce l’interfaccia che ha lo scopo di dichiarare che cosa può fare la classe e come può essere utilizzata da un utente. La parte privata, costituita dall’insieme dei metodi e degli attributi private, di una classe definisce come lavora la classe.
  • 11. INCAPSULAMENTO Con il termine incapsulamento si intende il meccanismo che permette di racchiudere all’interno della stessa struttura sia dati che codice, in altre parole, una scatola che protegge i propri dati e il proprio codice tramite l’incapsulamento, dove i dati descrivono l’oggetto e il codice opera sui dati dell’oggetto. Questo principio prevede che si possa accedere alle informazioni di un oggetto unicamente attraverso i suoi metodi, che rappresentano l’interfaccia dell’oggetto.
  • 13. COSTRUTTORE, DISTRUTTORE Il metodo costruttore è quel particolare metodo che viene invocato alla creazione dell’oggetto e che contiene tutte le istruzioni da eseguire per la sua inizializzazione. Può essere definito anche un metodo costruttore con parametri, in questo caso non sarà possibile instanziare la classe senza passare i parametri. Un metodo costruttore è un metodo particolare che si distingue dagli altri per tre elementi: •ha lo stesso nome della classe; •non ha tipo di ritorno, nemmeno void; •ha visibilità public. Il metodo distruttore è quel particolare metodo che si occupa di rilasciare le risorse.
  • 14. OVERLOADING Una classe può contenere più costruttori e metodi con lo stesso nome purché distinti da diverse intestazioni: •con un numero diverso di parametri (forma numerica); •con numero uguale di parametri ma di tipo diverso (forma tipale); •numero e tipo di parametri è lo stesso, ma la loro posizione è scambiata (forma posizionale). Si dice anche che l’overloading consente di sovraccaricare il metodo con più di un significato.
  • 16. EREDITARIETA’ L’ereditarietà è un’importante funzionalità della OOP che permette di definire nuove classi partendo da classi sviluppate in precedenza. La nuova classe viene definita esprimendo solamente le differenze che essa possiede rispetto alla classe di partenza. La classe antenato di una nuova classe prende il nome di superclasse, la classe discendente di una classe esistente prende il nome di sottoclasse. Ogni sottoclasse eredita le caratteristiche della sua superclasse.
  • 17. POLIMORFISMO In informatica, il termine polimorfismo (dal greco "avere molte forme") viene usato in senso generico per riferirsi a espressioni che possono rappresentare valori di diversi tipi (dette espressioni polimorfiche). Una funzione si dice polimorfa se è capace di operare su oggetti di tipo diverso specializzando il suo comportamento in base al tipo di oggetto su cui agisce. Il termine polimorfismo indica la possibilità di implementare in modo speciale metodi e proprietà ereditati dalla classe antenato mantenendone il nome. Il polimorfismo per metodi è la modalità operativa che permette di utilizzare lo stesso nome per metodi differenti e viene realizzato in due modi: •mediante l’overloading, che significa letteralmente “sovraccaricare” ed indica la possibilità di definire metodi che hanno lo stesso nome ma firma differente; •mediante l’overridding, che significa letteralmente “sovrascrittura” ed indica la possibilità che le sottoclassi hanno di ridefinire un metodo ereditato da una superclasse, in questo caso si deve utilizzare la stessa identica firma. Il polimorfismo per dati o per classi è il meccanismo che permette di assegnare un riferimento di una superclasse all’istanza di una sottoclasse.