Please enable JavaScript.
Coggle requires JavaScript to display documents.
Object Oriented Programming OOP - Coggle Diagram
Object Oriented Programming
OOP
REGOLATA DA
CLASSI
DEFINIZIONE
definire tutte le operazioni appòicabili agli oggetti del tipo di dato astratto
garantire che l'utente possa manipolare gli oggetti tramite operazioni del tipo di dato astratto a cui gli oggetti appartengono
definire la rappresentazione dei dati dell'utente
VISIBILITA'
privata(private -) nasconde metodi e codice che risulteranno non utilizzabili ed e' la clausola di default
protetta sono visibili solamente nella classe dove sono definiti e anceh nei metodi delle calssi figlie ma mai in altri pnti del programma
pubblica (pubblic +) permette l'utilizzo di variabili e metodi dall'esetrno
OGGETTI
OGGETTI SIMILI
Rappresentazione di una qualsiasi cosa che ha comportamenti uguali e caratteristiche specifiche che li differenziano tra loro es. coltello machete.
Lo STATO di un oggetto e l'insime dei valori di un attributo
COMPOSTI DA:
METODI
SETTERS
tipo di dato uscita setnome (tip dato variabile da impostare)
GETTERS
tipo dato uscita getNOME()
DEFINIZIONE
Gli oggetti hanno specifiche modalita' di utilizzo (coltello taglia, il piano cottura scalda) alcuni di uso singolo e altri con piu' modalita di utilizzo
ATTRIBUTI
DEFINIZIONE
Qualsiasi qualita misurabile o enumerabile
DEFINIZIONE
entita' del problema o della realta' che vengono astratti, vengono memorizzati al suo interno attributi e dei comportamenti (METODI) che sono azioni quindi verbi in modo di cooperare con altri oggetti
GENERALITA
Modello di programmazzione o paradigma piu diffuso e utilizzato dal 1980
Primo vero linguaggio a oggetti puro usato tutt'oggi fu il linguaggio SmallTalk introdotto negli anni 70' e poi ripreso da Adele Goldberg e Daniel Ingalls; oggi i linguaggi a oggetti piu rappresentativi sono Java, Eiffel
CARTTERISTICHE
sono tra le sorgenti d'ispirazione del concetto componente software
aiutano a integrare computazione e iterazione
utilizzano e integrano le metodologie di sviluppo top-down e bottom-up
aiutano ad affrontare il problema della sostituzione e del software obsoleto
Legacy caso in cui un applicazione continua ad essere usata perche l'utente non ha i mezzi finanziari o non vuole sostituirla con una di migliore prestazione
RAPPRESENTAZIONE UML
Unified Modeling Language standard OGM Object Managment group standard ISO Un linguaggio per visualizzare e realizzare i prodotti di sistemi e software
PER GLI OGGETTI
Sintetica
Si utilizza un rettangolo con due sezioni dove viene indicato solo il nome dell'oggetto
Completa
si utiliza un rettangolo con due sezioni con indicati anche i valori relativi agli attributi che descrivono l'oggetto con la visibilita' ottenuta scrivendo+(public)e - (private)
PER LE CLASSI
Sintetica
Si utilizza un rettangolo con le tre sezioni dove viene indicato solo il nome della classe
Completa
Si utilizza un rettangolo con tre sezioni con indicati anche gli attributi e metodi
PRINCIPI FONDAMENTALI
INCAPSULAMENTO
possibilita di incorporare sia gli attributi che i metodi isolando l'oggetto dalle cose esterne (barriera concettuale)
INFORMATION HIDING
fornisce all'utente un meccanismo che garantisce il mascheramento del funzionamento dell'oggetto
POLIMORFISMO
DEFINIZIONE
Capacità di far assumere agli oggetti comportamenti diversi determinati da una diversa implementazione dei suoi membri o da una diversa firma cioe metodi della classe ereditata dai metodi della classe base nel numero oppure nel tipo di parametri o in entrambi
TIPOLOGIE
OVERLOADING
sovraccarico di metodi cioe metodi con lo stesso nome hanno argomenti diversi comportamenti diversi differiscono per la firma
OVERRIDING
o sovrapposizione dei metodi cioe sovrascrivere nella classe derivata un metodo ereditato cambiato le istruzioni che descrivono il comporamento ma mantenedo uguale la firma
EREDITARIETA
DEFINIZIONE
Si intende un meccanismo per definire nuove classi in termini di calssi esistenti gia definite in un punto piu alto di astrazione, dalle qualli ereditari attributi e metodi in modo che possano essere gestite colletivamente e ri usate
CLASSIFICAZIONE GERARCHICA
SUPERCLASSE & SOTTOCLASSE
FUNZIONI
-Può aggiungere nuovi campi metodi a quelli della supercalsse
-Può ridefinire (sovrascrivere) alcuni dei metodi ereditati dalla supercalsse riscrivendone il codice utilizzando lo stesso nome e firma
-Può restringere in qualche modo la visibilità di una variabile o un metodo ereditato dalla superclasse
-NON può eliminare campi attributi o metodi della superclasse
-La calsse antenato di una nuova classe prende il nome di super calsse
-La classe discendente di una classe esistente che prende il nome di sottoclasse
-Ogni sottoclasse eredita le caratteristiche della supercalsse con lo scopo di ottenere oggetti più specializzati
-Ogni istanza di una sottocalsse è un'istanza della sua supercalsse
-Vale la proprietà transitiva(ogni istanza di una sottoclasse è un' istanza di tutte le sue classi antenato)
-Il meccanismo di ereditarietà è ricorsivo una sottocalsse può diventare supercalsse delle proprie sottoclassi
RELAZIONE DI APPARTENENZA
La relazione IS-A è la relazione tra una classe(superclasse o classe base) e una o più versioni specializzate(sottoclassi o calssi derivate)
La verifica avviene ponendo due semplici domande
è un-è un tipo di