Please enable JavaScript.
Coggle requires JavaScript to display documents.
Object Orient Programming OOP - Coggle Diagram
Object Orient Programming
OOP
CARATTERISTICHE
sono le sorgenti d'ispirazione del concetto di componente software
aiutano a interagire computazione e interazione
Utilizzano e integrano le metetologie di sviluppo di top-down e botton-up
aiutano ad affrontare il problema della sostituzione del software obseleto (legacy)
legacy: caso in cui una applicazione continua as essere usata perche' l'utente non ha i mezzi finanziari o non vuole sostituirla con una di migliore prestazione
GENERALITA'
Modello di programmazione, ovvero un paradigma, piu' diffuso e utilizzato a partire dagli anni 80
Il primo vero linguaggio a oggetti 'puro' usato tutt'oggi fu il linguaggio SmallTalk, introdutto negli anni '70 inizialmente da Alan Kay e successivamente ripreso da Adel Goldeberg e Daniel Ingalls, entrambi ricercatori allo Xerox Park di Palo Aloto in California.
REGOLATA DA
CLASSI
DEFINIZIONE
Definire (e nascondere) la rappresentazione dei dati dell'utente
definire tutte le operazioni applicabili agli oggetti del tipo di dato astratto
garantire lche l'utente possa manipolare gli oggetti tramite operazioni di tipo astratto (TDA, insieme dei valori che puo' assumere una variabile comprese le operazioni possibili su dati di quel tipo ) a cui gli oggetti appartengono (protezione)
VISIBILITA'
pubblica (pubblic"+"): permette l'utilizzo di variabili e metodi all'esterno
privata(private"-"): nasconde metodi e codici che risulteranno non utilizzabili ed è la clausula di default
protetta (procted): sono visibili solamente nella classe dove sono definiti e anche nei metodi delle classi figlie (pubblic"+"), ma mai in altri punti del programma (private"-")
OGGETTO
DEFINIZIONE
Entità del problema o della realtà che vengono astratti, vengono memorizzati al suo interno degli specifici ATTRIBUTI e comportamenti (METODI) in modo tale da cooperare con altri OGGETTI svolgendo specifiche azioni
OGGETTI SIMILI
Rappresentazione di una qualsiasi cosa che ha comportamenti uguali (METODI) e caratteristiche specifiche (ATTRIBUTI) che li differenziano tra loro (es. coltello e macete)
lo STATO di un oggetto è l'insieme dei valori di un attributo (es. fornello spento e acceso)
COMPOSTI DA:
METODI
DEFINIZIONE
Gli oggetti hanno specifiche modalità di utilizzo (es. il coltello taglia) alcuni di uso singolo altri con più modalità di utilizzo (il coltello taglia, spalma...) che caratterizzano il loro comportamento
SETTERS
set: impostare
Sta nella sezione pubblic e è un METODO che permette di interfacciarsi con gli attributi presenti nella sezione privata
void-nome metodo-char-nome
tipo di uscita setNome (tipo dato iniziale variabile da impostare);
GETTERS
get: per leggere
Sta nella sezione pubblic e è un METODO che permette di interfacciarsi con gli attributi presenti nella sezione privata
char-nome metodo
tipo dato iniziale getNome();
ATTRIBUTI
DEFINIZIONE
Qualsiasi qualità MISURABILE o ENUMERABILE può costituire un attributo. Alcuni attributi sono presenti in tutti gli oggetti altri invece sono caratteristici di un sola CLASSE.
RAPPRESENTAZIONE UML
UML: Unified Modeling Language. Standard OMG Obiject Manegement Grup e standard ISO
PER LE CLASSI
SINTETICA
: si utilizza un rettangolo con tre sezioni dove viene indicato dolo il nome della classe
COMPLETA
: si utilizza u rettangolo con tre sezioni che indica anche gli attributi e i metodi
PER GLI OGGETTI
SINTETICA
: si utilizza un rettangolo con due sezioni dove viene indicato solo il nome dell'oggetto
COMPLETO
: si utilizza un rettangolo con due sezioni con indicate anche i valori relativi gli attributi che descrivono l'oggetto con la visibilità ottenuta scrivendo +(public) e -(privat)
PRINCIPI FONDAMENTALI
INCAPSULAMENTO
Possibilita di incorporare (incapsulare) sia gli attributi che i metodi isolando l'oggetto dalle cose estarne (barriera concettuale)
information hiding
fornisce all'utente un meccanismo di interfacciamento che garantisce il mascheramento (astrazione) del funzionamento interno dell'oggetto
POLIFORMISMO
DEFINIZIONE
Capacità di far assumere agli oggetti comportamenti diversi, determinati da una divera implementazione dei suoi membri o da una diversa firma, cioè i metodi della classe ereditata differiscono dai metodi della classe base nel numero oppure nel tipo dei parametri, o per entrambi
Nel linguaggio ad oggetti ci sono presenti due tipi di poliformismo:
OVERLOADING: cioè metodi con lo stesso nome hanno argomenti diversi con comportamnti diveri; differiscono per la firma(nel numero oppure nel tipo di parametri)
OVERRIDING: cioè sovvrascrive nella classe derivata, un metodo eriditato, cambiano le istruzioni che descrivono il comportamento , ma mantengono uguale la firma (numero e tipo di parametri), al momento dell'esecuzione il programma decide quale metodo utilizzare a seconda dell'oggetto, base o derivato, al quale viene applicato il metodo
EREDITARIETÀ
DEFINIZIONE
Meccansimo per definire nuovi classi in termini di classi esistenti già definite con un più alto livello di astrazione, dalle queli ereditare attributi e metodi, in modo che possano essere gestite collettivamente e riusate
CLASSIFICAZIONE GERARCHICA
SUPERCLASSE&SOTTOCLASSE
la classe
antenato
di una nuova classe prende il nome di
superclasse
;
la classe
discendente
di una classe esistente prende il nume di
sottoclasse
;
ogni
sottoclasse eredita
le carattaristiche della sua superclasse con lo scopo di ottenere oggetti più specializzati;
ogni istanza di una sottoclasse è (IS-A) un'istanza della sua superclasse (generalizzazione);
vale la proprietà transitiva (ogni istanza di una sottoclasse è un'istanza di tutte le sue classi antenato);
il meccanismo di ereditarietà è ricorsivo: una sottoclasse può diventare superclasse delle proprie sottoclassi.
FUNZIONI
Può aggiungere
nuovi campi attributi e nuovi campi metodi a quelli della superclasse;
Può ridefinire
(sovrascrivere) alcuni metodi ereditati dalla superclasse, riscrivendone il codice utilizzando lo stesso nome e firma (override);
può restirngere
in qualche modo la visibilità di una variabile o un metodo ereditato dalla superclasse;
NON PUÒ eleminare
campi attributi o metodi della superclasse
RELAZIONE DI APPARTENENZA
La relazione
IS-A
è la relazione tra una classe (supercalle o classe base) e unaa o più versioni specializzate (sottoclasse o classi derivate).
La verifica avviene ponendo due semplici domande
è un-è un tipo di
.