Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

24
Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1

Transcript of Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Page 1: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Lezione 2

Programmazione ad oggetti

OggettiClassi Interazione tra oggettiAccesso agli attributi

1

Page 2: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

2

Modelli orientati agli oggettiModello ad oggetti

Il mondo viene visto come un sistema di cose

Comportamento visibile

Un oggetto

Stato interno nascosto

Oggetto = stato + comportamento + identità

Page 3: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

3

Passi per la modellazione OO

Identificare gli oggettiIdentificare il comportamento degli oggettiIdentificare le relazioni tra gli oggettiRealizzare gli oggetti: raggruppare in classi le

strutture dati ed i comportamenti

Page 4: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Oggetti Per capire cos’è un oggetto prendiamo spunto

dalla vita reale: un oggetto è un’automobile, un computer, una casa, e così via

Un oggetto può essere definito elencando sia le sue caratteristiche sia i suoi comportamenti, cioè le funzioni che mette a disposizione

Elencando le caratteristiche e i comportamenti, diamo una definizione generica

Un oggetto però è un’entità particolare, con le sue caratteristiche specifiche.

4

Lezione 2

Page 5: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Oggetti

Ad un preciso oggetto assegniamo un nome: chiameremo quindi un oggetto di classe automobile auto1

Quindi l’oggetto auto1 potrà essere così descritto:

- Velocità = 80 - Colore = rosso - Numero di porte = 5 - Marca = bmw

5

Lezione 2

Page 6: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Oggetti

Un altro oggetto auto2 potrà avere le seguenti caratteristiche:

- Velocità = 60 - Colore = nero - Numero di porte = 4 - Marca = fiatQuindi gli oggetti sono diversi a seconda del

valore assunto dalle loro caratteristiche, ma condividono la stessa struttura

6

Lezione 2

Page 7: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Oggetti

Nella terminologia OOP le caratteristiche di un oggetto vengono chiamate attributi, i comportamenti vengono chiamati metodi

I metodi sono le operazioni che un oggetto è in grado di compiere

Un oggetto è quindi formato da attributi e metodi

7

Lezione 2

Page 8: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Classi

Possono esistere più oggetti che hanno gli stessi attributi, anche con valori diversi, e che dispongono degli stessi metodi. Si dice che questi oggetti appartengono alla stessa classe

Una classe specifica gli attributi, senza indicarne il valore, e i metodi che devono avere gli oggetti che appartengono alla classe

La classe quindi crea più oggetti tutti con gli stessi attributi e gli stessi metodi. Gli oggetti creati a partire da una classe vengono chiamati istanze della classe

Due istanze della stessa classe sono distinguibili solo per il valore dei loro attributi, mentre il loro comportamento (metodo) è lo stesso

8

Lezione 2

Page 9: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Classi

La struttura di una classe è la seguente:

<nome classe> <nome classe>

<attributo1><attributo1>

<attributo2><attributo2>

… …

<metodo1><metodo1>

<metodo2><metodo2>

… …

9

Lezione 2

Diagramma

delle classi

Page 10: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Classi Esempio:

Automobile Automobile

VelocitàVelocità

ColoreColore

Numero di porteNumero di porte

MarcaMarca

AvviatiAvviati

AcceleraAccelera

FermatiFermati

GiraGira

Cambia marciaCambia marcia

Rifornisciti Rifornisciti 10

Lezione 2

Page 11: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Classi

Usando questa classe possiamo creare gli oggetti auto1 e auto2, e dopo averli creati possiamo interagire con essi usando l’invio di messaggi oppure modificando direttamente gli attributi.

Possiamo impostare alcune caratteristiche dell’oggetto auto1:

- auto1.colore = blu - auto1.numero_di _porte = 5

oppure possiamo usare i metodi dell’oggetto auto2 sfruttando i seguenti messaggi:

- auto2.avviati() - auto2.accelera()

11

Lezione 2

Page 12: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

12

Cenni di UML

UML è un linguaggio (Unified Modeling Language)

Fornisce i costrutti per lo sviluppo di sistemi software:Analisi dei requisitiAnalisi e progetto OOModellazione dei componenti e della struttura

Modello espresso mediante diagrammi grafici

Page 13: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

13

Simboli usati per la visibilità

ContoCorrente-Numero correntista-Nome correntista-Saldo#Numero operazioni+deposita(valore)+preleva(valore)+calcolaInteressi()-incrementaNumeroOperazioni+leggiNumeroOperazioni()

UML .

• Tipo di dati astratto=classe• istanza di un tipo di dati astratto = oggetto • incapsulamento = data hiding = fornisce un livello di astrazione attraverso le funzoni

Non c’è struttura dati separata: operazioni e struttura dati integrate in una singola entità

Page 14: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

14

CLASSE

attributi

metodi

oggetto A

variabili istanza di A

metodi oggetto B

variabili istanza di B

metodi

oggetto C

variabili di istanza di C

metodi

Una classe è un modello per creare oggetti descritti dalle stesse caratteristiche (attributi) e che mostrano comportamenti identici a partire dalle stesse situazioni (attributi) iniziali.

istanza, oggetto (una varabile)

istanza

istanza

TIPO

Page 15: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

15

TCane

RazzaNome

unTrovatello

bastardinoboby

ilMioCane

teabarboncino

unCagnone

briciolasan Bernardo

oggetto

CLASSE

oggetto

oggetto

Page 16: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Esempi usando il linguaggio Java

Un’applicazione Java è costituita da una o più classi; una classe solamente contiene il metodo main(): l’esecuzione di un’applicazione java comincia eseguendo questo metodo.

class saluti { public static void main (String args[]) { System.out.println(“hello world”); } }

-public indica che il metodo è pubblico ed è visibile -static indica che il metodo è associato alla classe e non può essere richiamato dai singoli oggetti della classe. -void indica che non ci sono valori di ritorno -Tra parentesi sono indicati i parametri. Il metodo main possiede come parametro un array di stringhe (indicato

con args[]) che corrisponde ai parametri passati dalla riga di comando quando viene eseguita l’applicazione Questo semplice esempio dichiara una classe chiamata saluti, contenente il metodo main che è formato da

un’unica istruzione, ossia una chiamata del metodo println(). Usando la terminologia OOP diciamo che viene inviato

all’oggetto System.out il messaggio println. L’oggetto System.out indica lo standard output.

16

Lezione 2

Page 17: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Esempio di dichiarazione di una classe: class <nome della classe> { //attributi //metodi }

17

Lezione 2

Esempi usando il linguaggio JavaEsempi usando il linguaggio Java

Page 18: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Esempi usando il linguaggio Java

Esempio di dichiarazione di attributi: class automobile { private int velocità, numero_porte; String colore, marca; }Esempio di dichiarazione di metodi void accelera() { …} public void sposta() { …}

18

Lezione 2

Page 19: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

19

Inizializza le variabiliCostruttore: metodo con lo stesso nome della classe

non richiede tipo di ritornopuo’ avere una lista di argomenti di

inizializzazioneattivato automaticamente quando si crea

un'oggetto con newsono possibili costruttore diversi, che devono

avere liste di argomenti diversicostruttore di default: senza argomenti.

Un primo metodo: il costruttore della classe

Page 20: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Esempi usando il linguaggio Java

Esempio di creazione ed uso di oggetti: supponiamo che esista la classe Automobile; dichiariamo le

seguenti istanze di classe:

- Automobile auto1 ; - Automobile auto2;

per creare l’oggetto si usa l’operatore new seguito dal nome del metodo costruttore

- auto1 = new Automobile(); - auto2 = new Automobile();

20

Lezione 2

Page 21: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

21

Le classiClassificazione:

Oggetti con gli stessi attributi e con gli stessi comportamenti sono raggruppati in classi

Classe astrazione che descrive delle proprietà

Una classe descrive un insieme di oggetti individuali

Un oggetto è una istanza della classe Ogni istanza ha valori diversi degli attributi Le istanze di una classe condividono i nomi degli attributi

e le operazioni

Page 22: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Interazione tra oggetti

Un programma ad oggetti è formato da tanti oggetti che comunicano ed interagiscono tra loro

L’interazione tra gli oggetti avviene con un meccanismo chiamato scambio di messaggi

Un oggetto, inviando un messaggio ad un altro oggetto, può richiedere l’esecuzione di un metodo

Un oggetto può interagire con un altro oggetto per diversi motivi: per modificarne lo stato, per richiedere un’informazione o per attivare un comportamento

22

Lezione 2

Page 23: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Interazione tra oggetti

Un messaggio è costituito da 3 parti:

un destinatario, cioè l’oggetto verso il quale il messaggio è indirizzato

il metodo che si vuole attivare, che deve essere uno dei metodi messi a disposizione dall’oggetto destinatario

l’insieme dei parametri che vengono passati all’oggetto quando si richiede l’attivazione del metodo

23

Lezione 2

Page 24: Lezione 2 Programmazione ad oggetti Oggetti Classi Interazione tra oggetti Accesso agli attributi 1.

Interazione tra oggetti

Per esempio, se abbiamo una classe automobile e una classe autista, un oggetto di classe autista, per esempio autista1 per inviare all’oggetto auto1 di classe automobile il messaggio che richiede di aumentare la velocità può scrivere:

auto1.accelera()

24

Lezione 2