advertisement

Pensiero Orientato Agli Oggetti

50 %
50 %
advertisement
Information about Pensiero Orientato Agli Oggetti
Education

Published on October 14, 2008

Author: silvanonatalizi

Source: slideshare.net

Description

introduzione alla programmazione orientata agli oggetti
advertisement

Pensiero orientato agli oggetti prima parte Lezione del 14 ottobre 2008 per il modulo “Programmazione ad Oggetti

Vari livelli di Object-Oriented Object Oriented Analysis – OOA Object Oriented Design - OOD Object Oriented Programming – OOP Design Patterns Unified Modeling Language – UML OO Data – XML OO Internet Development

Object Oriented Analysis – OOA

Object Oriented Design - OOD

Object Oriented Programming – OOP

Design Patterns

Unified Modeling Language – UML

OO Data – XML

OO Internet Development

OO paradigma di pensiero Come pensiamo in termini di oggetti Imparare i concetti OO senza un metodo di sviluppo ed un insieme di tools (strumenti) Separare metodi e strumenti dal processo di pensiero Object Oriented Comprendere la differenza tra l’imparare i concetti OO e l’usare metodi e strumenti che supportano questo paradigma di pensiero

Come pensiamo in termini di oggetti

Imparare i concetti OO senza un metodo di sviluppo ed un insieme di tools (strumenti)

Separare metodi e strumenti dal processo di pensiero Object Oriented

Comprendere la differenza tra l’imparare i concetti OO e l’usare metodi e strumenti che supportano questo paradigma di pensiero

Sommario dei fondamentali concetti OO Definizione di oggetto Definizione di classe Nascondere i dati (data hiding) Incapsulamento Getters Setters Attributi Metodi Messaggi Interfaccia Implementazione Ereditarietà Astrazione Relazione is-a Polimorfismo Composizione Relazione has-a

Definizione di oggetto

Definizione di classe

Nascondere i dati (data hiding)

Incapsulamento

Getters Setters

Attributi

Metodi

Messaggi

Interfaccia

Implementazione

Ereditarietà

Astrazione

Relazione is-a

Polimorfismo

Composizione

Relazione has-a

Differenza tra programmazione procedurale e Orientata agli oggetti Nella programmazione procedurale il codice (istruzioni) è localizzato in funzioni e procedure. Queste funzioni diventano della scatole nere (black box), dove entrano input ed escono output I dati sono posti in strutture separate I dati sono manipolati dalle funzioni inputs funzione outputs

Nella programmazione procedurale il codice (istruzioni) è localizzato in funzioni e procedure.

Queste funzioni diventano della scatole nere (black box), dove entrano input ed escono output

I dati sono posti in strutture separate

I dati sono manipolati dalle funzioni

Che cosa è un oggetto Un oggetto è un’entità (cosa) che contiene sia attributi che comportamenti Ad esempio una persona ha un colore degli occhi, un’età, una certa altezza… e questi sono attributi! Una persona ha pure dei comportamenti, come il camminare, il parlare, pensare… Pertanto una persona è un oggetto La differenza chiave tra la programmazione OO e le altre programmazioni sta in questo fatto chiave: l’oggetto contiene entrambi: attributi e comportamenti

Un oggetto è un’entità (cosa) che contiene sia attributi che comportamenti

Ad esempio una persona ha un colore degli occhi, un’età, una certa altezza… e questi sono attributi!

Una persona ha pure dei comportamenti, come il camminare, il parlare, pensare…

Pertanto una persona è un oggetto

La differenza chiave tra la programmazione OO e le altre programmazioni sta in questo fatto chiave: l’oggetto contiene entrambi: attributi e comportamenti

Da fare: scopri dieci oggetti Determina dieci oggetti con i loro attributi e con i loro comportamenti Gli oggetti possono essere cose animate e cose inanimate. Possono essere concetti o cose concrete

Determina dieci oggetti con i loro attributi e con i loro comportamenti

Gli oggetti possono essere cose animate e cose inanimate.

Possono essere concetti o cose concrete

Come è possibile che oggetti inanimati abbiano un comportamento ? Anche un oggetto inanimato ha un comportamento nel senso che ha un ruolo in un sistema Offre dei servizi Risponde alle nostre richieste Ad esempio una Sedia ! Quale è il comportamento di una Sedia ?

Anche un oggetto inanimato ha un comportamento nel senso che ha un ruolo in un sistema

Offre dei servizi

Risponde alle nostre richieste

Ad esempio una Sedia !

Quale è il comportamento di una Sedia ?

I dati separati dalle funzioni nella programmazione procedurale Talvolta i dati sono globali per cui è facile modificarli dall’esterno Nei dati globali più funzioni hanno accesso Funzione 1 Funzione 2 Dati globali Funzione 3 Funzione 4

Talvolta i dati sono globali per cui è facile modificarli dall’esterno

Nei dati globali più funzioni hanno accesso

Il contenuto degli oggetti Gli oggetti combinano dati e comportamenti in un unico simpatico pacchetto Sono più di una struttura dati o di tipi di dati primitivi Contengono entità quali interi e stringhe che sono usate per rappresentare attributi Ma contengono anche i metodi, che rappresentano il comportamento In un oggetto i metodi sono usati per eseguire operazioni sui dati ed altre azioni. La cosa più importante è che possiamo controllare l’accesso ai membri di un oggetto (metodi ed attributi)

Gli oggetti combinano dati e comportamenti in un unico simpatico pacchetto

Sono più di una struttura dati o di tipi di dati primitivi

Contengono entità quali interi e stringhe che sono usate per rappresentare attributi

Ma contengono anche i metodi, che rappresentano il comportamento

In un oggetto i metodi sono usati per eseguire operazioni sui dati ed altre azioni.

La cosa più importante è che possiamo controllare l’accesso ai membri di un oggetto (metodi ed attributi)

Controllo ai membri di un oggetto Alcuni membri di un oggetto, sia attributi che metodi, possono essere nascosti ad altri oggetti Ad esempio un oggetto Math potrebbe contenere due numeri interi mioint1 e mioint2, i metodi per settare e recuperare i valori di mioint1 mioint2. Potrebbe pure contenere un metodo chiamato somma() Math metodo metodo metodo dati

Alcuni membri di un oggetto, sia attributi che metodi, possono essere nascosti ad altri oggetti

Ad esempio un oggetto Math potrebbe contenere due numeri interi mioint1 e mioint2, i metodi per settare e recuperare i valori di mioint1 mioint2. Potrebbe pure contenere un metodo chiamato somma()

Math

Data hiding e Incapsulamento Il restringere l’accesso a certi attributi o metodi è chiamato “data hiding” Il combinare insieme attributi e metodi nella medesima entità è chiamato “incapsulamento”

Il restringere l’accesso a certi attributi o metodi è chiamato “data hiding”

Il combinare insieme attributi e metodi nella medesima entità è chiamato “incapsulamento”

messaggi Cosa succede quando un altro oggetto, ad esempio mioOggetto, vuole accedere alla somma di mioint1 e mioint2 ? Questo oggetto la chiede all’oggetto Math mioObject invia un messaggio all’oggetto Math I due oggetti comunicano l’uno con l’altro tramite i loro metodi Un messaggio è in realtà una chiamata del metodo somma() di Math. Il metodo somma() viene mandato in esecuzione e restituisce il valore della somma a mioObject

Cosa succede quando un altro oggetto, ad esempio mioOggetto, vuole accedere alla somma di mioint1 e mioint2 ?

Questo oggetto la chiede all’oggetto Math

mioObject invia un messaggio all’oggetto Math

I due oggetti comunicano l’uno con l’altro tramite i loro metodi

Un messaggio è in realtà una chiamata del metodo somma() di Math. Il metodo somma() viene mandato in esecuzione e restituisce il valore della somma a mioObject

Come comunicano i due oggetti mioOggetto Math dati metodo metodo metodo dati metodo metodo metodo

mioOggetto

Math

Non ci interessa come la somma è calcolata mioOggetto non ha la necessità di sapere come la somma è stata calcolata Con questa metodologia al lavoro, si può cambiare il modo con cui Math calcola la somma senza modificare mioOggetto Tutto quello che mioOggetto vuole è la somma ! E non è interessato a come questa viene calcolata Esempio di una semplice calcolatrice

mioOggetto non ha la necessità di sapere come la somma è stata calcolata

Con questa metodologia al lavoro, si può cambiare il modo con cui Math calcola la somma senza modificare mioOggetto

Tutto quello che mioOggetto vuole è la somma ! E non è interessato a come questa viene calcolata

Esempio di una semplice calcolatrice

Semplice calcolatrice Quando determinate la somma con una calcolatrice, tutto quello che usate è un’interfaccia, l’interfaccia della calcolatrice, la tastiera ed il display. La calcolatrice ha un metodo per fare la somma che viene invocato (eseguito) quando premete la corretta sequenza di tasti Come risposta ottenete il corretto risultato della somma Comunque non avete nessuna idea di come questo risultato sia stato ottenuto

Quando determinate la somma con una calcolatrice, tutto quello che usate è un’interfaccia, l’interfaccia della calcolatrice, la tastiera ed il display.

La calcolatrice ha un metodo per fare la somma che viene invocato (eseguito) quando premete la corretta sequenza di tasti

Come risposta ottenete il corretto risultato della somma

Comunque non avete nessuna idea di come questo risultato sia stato ottenuto

Responsabilità Il calcolo della somma non è responsabilità di mioOggetto È responsabilità di Math Se mioOggetto ha accesso all’oggetto Math, può inviargli gli appropriati messaggi ed ottenere l’appropriato risultato. In generale gli oggetti non devono manipolare i dati interni di altri oggetti Ad esempio mioOggetto non dovrebbe direttamente cambiare i valori di mioint1 e mioint2

Il calcolo della somma non è responsabilità di mioOggetto

È responsabilità di Math

Se mioOggetto ha accesso all’oggetto Math, può inviargli gli appropriati messaggi ed ottenere l’appropriato risultato.

In generale gli oggetti non devono manipolare i dati interni di altri oggetti

Ad esempio mioOggetto non dovrebbe direttamente cambiare i valori di mioint1 e mioint2

Che cosa esattamente è un oggetto ? Gli oggetti sono i blocchi di costruzione di un programma OO Un programma che usa la tecnologia OO è una collezione di oggetti Ad esempio consideriamo un sistema costituito da una compagnia e i suoi impiegati. Questi sono gli oggetti. Ciascuno di questi oggetti è costuito da dati e comportamento

Gli oggetti sono i blocchi di costruzione di un programma OO

Un programma che usa la tecnologia OO è una collezione di oggetti

Ad esempio consideriamo un sistema costituito da una compagnia e i suoi impiegati. Questi sono gli oggetti.

Ciascuno di questi oggetti è costuito da dati e comportamento

I dati di un oggetto I dati memorizzati dentro un oggetto rappresentano lo stato dell’oggetto Questi dati sono chiamati attributi Per un impiegato potrebbero essere il codice fiscale, la data di nascita, il sesso, il numero di telefono, etc Gli attributi contengono le informazioni che differenziano tra di loro i vari oggetti dello stesso tipo, in questo caso gli impiegati I valori degli attributi

I dati memorizzati dentro un oggetto rappresentano lo stato dell’oggetto

Questi dati sono chiamati attributi

Per un impiegato potrebbero essere il codice fiscale, la data di nascita, il sesso, il numero di telefono, etc

Gli attributi contengono le informazioni che differenziano tra di loro i vari oggetti dello stesso tipo, in questo caso gli impiegati

I valori degli attributi

Che cosa è il comportamento degli oggetti Il comportamento di un oggetto è tutto quello che un oggetto può fare Nella programmazione procedurale i comportamenti sono contenuti nelle procedure, funzioni, subroutine Nella programmazione OO questi comportamenti sono contenuti nei metodi Un metodo viene invocato (mandato in esecuzione) inviandogli un messaggio

Il comportamento di un oggetto è tutto quello che un oggetto può fare

Nella programmazione procedurale i comportamenti sono contenuti nelle procedure, funzioni, subroutine

Nella programmazione OO questi comportamenti sono contenuti nei metodi

Un metodo viene invocato (mandato in esecuzione) inviandogli un messaggio

Settare, recuperare i valori degli attributi Uno dei comportamenti richiesti per un oggetto impiegato è quello di settare e restituire i valori dei suoi attributi Pertanto ogni attributo dovrebbe avere dei metodi corrispondenti, come setTelefono(), getTelefono(). In questo caso quando un altro oggetto necessita di questa informazione può inviare un messaggio all’oggetto impiegato e chiedere quale sia il suo numero di telefono public void setTelefono (String n){telefono=n;} public String getTelefono(){return telefono;}

Uno dei comportamenti richiesti per un oggetto impiegato è quello di settare e restituire i valori dei suoi attributi

Pertanto ogni attributo dovrebbe avere dei metodi corrispondenti, come setTelefono(), getTelefono().

In questo caso quando un altro oggetto necessita di questa informazione può inviare un messaggio all’oggetto impiegato e chiedere quale sia il suo numero di telefono

public void setTelefono (String n){telefono=n;}

public String getTelefono(){return telefono;}

Il concetto dei metodi getters e setters La natura concettuale dei metodi accessori è quella di supportare il concetto di “data hiding” nascondere i dati Poiché gli oggetti non possono manipolare direttamente i dati dentro un altro oggetto, i metodi getters e setters forniscono un accesso controllato a questi dati I metodi getters sono anche chiamati metodi di accesso I metodi setters sono anche chiamati metodi di mutazione (mutators)

La natura concettuale dei metodi accessori è quella di supportare il concetto di “data hiding” nascondere i dati

Poiché gli oggetti non possono manipolare direttamente i dati dentro un altro oggetto, i metodi getters e setters forniscono un accesso controllato a questi dati

I metodi getters sono anche chiamati metodi di accesso

I metodi setters sono anche chiamati metodi di mutazione (mutators)

Interfaccia dei metodi Osserva che stiamo solo mostrando l’interfaccia dei metodi e non la loro implementazione Per usare i metodi ad un utente serve la seguente informazione: Il nome del metodo I parametri da passare al metodo Il tipo di dato che esso restituisce

Osserva che stiamo solo mostrando l’interfaccia dei metodi e non la loro implementazione

Per usare i metodi ad un utente serve la seguente informazione:

Il nome del metodo

I parametri da passare al metodo

Il tipo di dato che esso restituisce

Interfaccia dei metodi esempio Sia un oggetto Pagatore che contiene il metodo calcolaPaga() che calcola la busta paga di uno specifico impiegato. Tra le altre informazioni dell’impiegato all’oggetto Pagatore serve il suo codice fiscale. Per ottenere questa informazione l’oggetto pagatore invia un messaggio all’oggetto impiegato getCodiceFiscale() Fondamentalmente questo significa che l’oggetto pagatore chiama ossia manda in esecuzione il metodo getCodiceFiscale() dell’oggetto impiegato L’oggetto impiegato riconosce questo messaggio e restituisce l’informazione richiesta

Sia un oggetto Pagatore che contiene il metodo calcolaPaga() che calcola la busta paga di uno specifico impiegato. Tra le altre informazioni dell’impiegato all’oggetto Pagatore serve il suo codice fiscale.

Per ottenere questa informazione l’oggetto pagatore invia un messaggio all’oggetto impiegato getCodiceFiscale()

Fondamentalmente questo significa che l’oggetto pagatore chiama ossia manda in esecuzione il metodo getCodiceFiscale() dell’oggetto impiegato

L’oggetto impiegato riconosce questo messaggio e restituisce l’informazione richiesta

Diagramma di classe Possiamo fare un disegno che rappresenta il sistema impiegato/pagatore e lo chiamiamo diagramma delle classi di questo sistema ad oggetti Impiegato ----------------------------------- dataNascita: Date codiceFiscale: String Nome: String Telefono: String ------------------------------------ getTelefono: String setTelefono: void … . Pagatore ------------------------------- paga: double -------------------------------- calcolaPaga: double

Possiamo fare un disegno che rappresenta il sistema impiegato/pagatore e lo chiamiamo diagramma delle classi di questo sistema ad oggetti

Come è fatto un diagramma delle classi Ogni classe è definita da tre separate sezioni Il nome Gli attributi Il comportamento ( i metodi ) Per modellizzare le classi si usano degli strumenti appositi quali UML

Ogni classe è definita da tre separate sezioni

Il nome

Gli attributi

Il comportamento ( i metodi )

Per modellizzare le classi si usano degli strumenti appositi quali UML

Creazione di un oggetto da una classe Una classe è un’astrazione degli oggetti del medesimo tipo Che relazione esiste tra classe e oggetto La classe è uno stampino per mezzo del quale creiamo oggetti dello stesso tipo Quando un oggetto è creato diciamo che è instanziato Pertanto se creiamo tre oggetti ad esempio impiegato, stiamo instanziando tre istanza completamente diverse della classe Impiegato Ciascun oggetto possiede una propria copia in memoria dei suoi attributi e dei suoi metodi Un oggetto Impiegato di nome Maria ha la sua propria copia di attributi e di metodi

Una classe è un’astrazione degli oggetti del medesimo tipo

Che relazione esiste tra classe e oggetto

La classe è uno stampino per mezzo del quale creiamo oggetti dello stesso tipo

Quando un oggetto è creato diciamo che è instanziato

Pertanto se creiamo tre oggetti ad esempio impiegato, stiamo instanziando tre istanza completamente diverse della classe Impiegato

Ciascun oggetto possiede una propria copia in memoria dei suoi attributi e dei suoi metodi

Un oggetto Impiegato di nome Maria ha la sua propria copia di attributi e di metodi

Che cosa è una classe Una classe è uno stampino per un oggetto Una classe è l’insieme dei tipi di dato che costituiscono gli attributi degli oggetti che essa modellizza È un’astrazione dai valori di questi dati In una classe non si tiene conto dei valori degli attributi, si considera l’oggetto nella sua generalità

Una classe è uno stampino per un oggetto

Una classe è l’insieme dei tipi di dato che costituiscono gli attributi degli oggetti che essa modellizza

È un’astrazione dai valori di questi dati

In una classe non si tiene conto dei valori degli attributi, si considera l’oggetto nella sua generalità

Add a comment

Related presentations

Related pages

Pensiero Orientato Agli Oggetti - Education

1. Pensiero orientato agli oggetti prima parte Lezione del 14 ottobre 2008 per il modulo “Programmazione ad Oggetti. 2. Vari livelli di Object-Oriented
Read more

OOTP: Processo di pensiero orientato agli oggetti

definizione di OOTP, OOTP cosa significa?, nel senso di OOTP, Processo di pensiero orientato agli oggetti, OOTP sta per Processo di pensiero orientato agli ...
Read more

La Programmazione Orientata Agli Oggetti | Download eBook ...

la programmazione orientata agli oggetti Download la programmazione orientata agli oggetti or read online here in PDF or EPUB. Please click button to get ...
Read more

Object-oriented thinking - ing.unitn.it

Pensiero Orientato agli Oggetti . Orientato agli Oggetti è una frase d'effetto. Dire che qualcosa è object oriented, può farvi apparire più intelligenti.
Read more

Ruby - Manuale e guida base per programmare in Ruby on Rails

Pensiero Orientato agli Oggetti Orientato agli Oggetti è una frase d'effetto. Dire che qualcosa è object oriented, può farvi apparire più intelligenti.
Read more

La programmazione orientata agli oggetti Pdf

Read online or download ebook La programmazione orientata agli oggetti pdf, La programmazione ad oggetti è una filosofia, è un modo di pensare prima di ...
Read more

Contents - ing.unitn.it

Pensiero Orientato agli Oggetti. 24. Gestione delle Eccezioni: rescue. 11.Metodi. 25. Gestione delle Eccezioni: ensure. 12.Classi. 26. Metodi d'Accesso. 13.
Read more

JavaScript 6. Oggetti e JavaScript. Linguaggio ad oggetti ...

Slide 1 JavaScript 6. Oggetti e JavaScript Slide 2 Linguaggio ad oggetti JavaScript è un linguaggio orientato agli oggetti In JavaScript sono presenti ...
Read more