La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Incapsulamento e information hiding. Information hiding e Incapsulamento Interfaccia –Definizione dei messaggi (metodi) possibili –Unico punto di accesso.

Presentazioni simili


Presentazione sul tema: "Incapsulamento e information hiding. Information hiding e Incapsulamento Interfaccia –Definizione dei messaggi (metodi) possibili –Unico punto di accesso."— Transcript della presentazione:

1 Incapsulamento e information hiding

2 Information hiding e Incapsulamento Interfaccia –Definizione dei messaggi (metodi) possibili –Unico punto di accesso per l’utente all’oggetto Implementazione –Realizzazione dell’azione corrispondente a un messaggio –Nascosta all’utente –Dichiarazione di variabili private (attributi) che definiscono lo stato dell’oggetto

3 Messaggio Metodo Attributo Rappresentazione (a capsula) di un oggetto

4 Livelli di visibilità per gli attributi Attraverso la visibilità si stabilisce se l’attributo è accessibile da altre classi:  publico l’attributo è accessibile da qualsiasi altra classe;  privato l’attributo è visibile solo all’interno della classe, quindi nessun’altra può variarne il valore;  protected (Java) l’attributo è accessibile dalle classi che appartengono alla stessa libreria e dalle sottoclassi.

5 Livelli di visibilità dei metodi Per la visibilità dei metodi valgono le stesse regole poste per gli attributi  publico il metodo può essere richiamato da qualsiasi altra classe;  privato il metodo può essere richiamato solo all’interno della classe in cui è stato definito ;  protected (Java) il metodo è visibile solo dalle sottoclassi. Solitamente i metodi vengono definiti publici

6 Information hiding Metodi ed attributi dichiarati pubblici Metodi ed attributi dichiarati privati Messaggi provenienti da oggetti chiamanti Marca Colore Cilindrata StatoMotore MostraStato() AvviaMotore() Rifornimento() AvviaMotore() Serbatoio CapacitàMax SpiaOlio SpiaFreni TuttoOk()

7 Definendo un attributo STATICO si avrà una copia sola di quell’attributo per tutti gli oggetti di quella classe. Solitamente gli attributi non vengono dichiarati statici, quindi si ha per ogni oggetto una copia. Un attributo statico, per cui, viene condiviso da tutte le istanze della classe. Attributi e metodi di classe Esempi: Nella classe Motocicletta quando si vuole indicare che tutte le motociclette hanno 2 ruote. STATICO NumRuote  2 Nella classe Cerchio, il valore di Pigreco (3,14…) è unico in tutte le istanze. STATICO PI  3,14

8 Attributi e metodi di classe I metodi statici vengono richiamati senza dover creare un oggetto di classe, infatti per invocarlo basta utilizzare il nome della classe e non dell’oggetto. Esempio: Nella classe calcolatrice i metodi Addizione(), Sottrai(), Moltiplica() e Dividi() CLASSE Calcolatrice INIZIO PUBBLICO STATICO Addiziona(Op1:REALE; Op2: REALE): REALE INIZIO RITORNO( Op1 + Op2) FINE …. FINE

9 Attributi e metodi di classe MAIN() Op1, Op2: REALE Scelta: INTERO Esci : BOOLEANO INIZIO SCRIVI(" MENU ") SCRIVI("Inserisci il primo operando") LEGGI(Op1) SCRIVI("Inserisci il secondo operando") LEGGI(Op2) Esci  Falso MENTRE(NOT Esci) ESEGUI INIZIO SCRIVI("MENU SCELTA OPERAZIONI") SCRIVI("Digita 1 per effettuare l’addizione ") SCRIVI("Digita 2 per effettuare la differenza ") SCRIVI("Digita 3 per effettuare la moltiplicazione ") SCRIVI("Digita 4 per effettuare la divisione ") SCRIVI("Digita 5 per terminare") LEGGI(Scelta) NEL CASO CHE Scelta SIA 1:Calcolatrice.Addiziona(Op1, Op2) 2:Calcolatrice.Sottrai(Op1, Op2) 3:Calcolatrice.Moltiplica(Op1, Op2) 4:Calcolatrice.Dividi(Op1, Op2) 5:Esci  Vero FINECASO FINEMENTRE FINE

10 Oggetti come attributi: aggregazioni tra oggetti Esiste un tipo di relazione tra classi: la relazione di “aggregazione”. E’ questa una relazione tra oggetti poichè serve per rappresentare gerarchie di oggetti relativi alle classi in relazione. In tali gerarchie ogni oggetto si presenta come aggregazione nel senso di “composizione” di altri oggetti. Una classe può “contenere” come attributi oggetti di altre classi

11 Oggetti come attributi: aggregazioni tra oggetti CLASSE Motocicletta INIZIO Motore: MTR Tl:Telaio RTA:RuotaAnteriore RTP : RuotaPosteriore …….. FINE

12 Oggetti come attributi: aggregazioni tra oggetti Processo di aggregazione Processo di scomposizione relazione di aggregazion e molteplicit à Motore Telaio RuotaAnterioreRuotaPosteriore Motocicletta 1 1 1

13 Oggetti come parametri Vediamo il costruttore della classe Motocicletta Motocicletta(pMTR: Motore, pTelaio:Telaio, pRTA:RuotaAnteriore, pRTP:RuotaPosteriore ) INIZIO MTR  Nuovo Motore() TL  Nuovo Telaio() RTA  Nuovo RuotaAnteriore() RTP  Nuovo RuotaPosteriore() FINE

14 Vantaggi dei programmi a oggetti La programmazione ad oggetti consente di: –Ridurre la dipendenza del codice di alto livello dalla rappresentazione dei dati l’accesso ai dati è mediato da un’interfaccia –Riutilizzare del codice di alto livello definendo opportune classi astratte –Sviluppare moduli indipendenti l’uno dall’altro I clienti che dipendono da interfacce che non dipendono dalla loro implementazione Le dipendenze da classi astratte sono più “leggere”

15 Difetti del software non mantenibile Rigidità –Non può essere cambiato con facilità –Non può essere stimato l’impatto di una modifica Fragilità –Una modifica singola causa una cascata di modifiche successive –I bachi sorgono in aree concettualmente separate dalle aree dove sono avvenute le modifiche Non riusabilità –Esistono molte interdipendenze, quindi non è possibile estrarre parti che potrebbero essere comuni


Scaricare ppt "Incapsulamento e information hiding. Information hiding e Incapsulamento Interfaccia –Definizione dei messaggi (metodi) possibili –Unico punto di accesso."

Presentazioni simili


Annunci Google