




Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una introduzione alla programmazione orientata agli oggetti (oop), un modello di programmazione diffuso che offre un approccio risolutivo differente attraverso l'approccio a oggetti. Esploriamo i principi fondamentali, come modularità, incapsulamento e protezione dell'informazione, e introdurremo concetti come astrazione, classi, ereditarietà e encapsulamento. Verranno inoltre presentate le fasi del processo oop: ooa, ood e oop.
Tipologia: Appunti
1 / 8
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





La programmazione a oggetti,OOP, rappresenta il modello di programmazione più diffuso. La OOP nasce verso la fine degli anni 80 come superamento della programmazione di tipo procedurale, ed è una propria e vera rivoluzione. Le fasi di realizzazione di un programma: MODELLO A CASCATA
“Crisi del software”, evoluzione esponenziale dell’hardware e la riduzione dei costi delle macchine e degli OS ha reso sproporzionati e preponderanti i costi di sviluppo e manutenzione del software applicativo, nella componente sia correttiva sia adattiva. Ciascun linguaggio offre i proprio strumenti per migliorare l’espressività del programmatore. Paradigma -> modello che permette al programmatore di descrivere astrattamente l’algoritmo. CRISI DEL SOFTWARE e OOP Le motivazioni della crisi di software, 3 cause fondamentali:
La crisi dimensionale ha origini di natura essenzialmente tecnologica. La crisi gestionale è essenzialmente dovuta alla crescita sproporzionata dei costi per effettuare la manutenzione del software, sia correttiva si adattiva: poteva capitare che per ogni modifica da effettuare ci fosse il bisogno di tutto il team. La crisi qualitativa è anch’essa legata sia alla crescita delle richieste si al fatto che gli strumenti a disposizione dei programmatori sono risultati insufficienti per ottenere software di qualità e proprietà desiderate; i linguaggi imperativi e la programmazione strutturata non si sono dimostrati strumenti efficaci. Il software di buona qualità deve invece essere: protetto, modulare, riusatile, documentato, incrementabile ed estensibile. La programmazione a oggetti si propone come una nuova metodologia, con un approccio risolutivo completamente diverso: l’approccio a oggetti. Il linguaggio OOP impone l’utilizzo di principi fondamentali della programmazione ad oggetti; si possono riassumere nei concetti: di modularità, incapsulamento, protezione dell’informazione. (Il primo linguaggio di programmazione orientato agli oggetti su il “Simula”)
ASTRAZIONE, OGGETTI e CLASSI Con la programmazione a oggetti è possibile modellare la realtà in modo più naturale e vicino all’uomo ASTRAZIONE È il primo importante strumento di lavoro nella fase di progettazione di un sistema SW L’astrazione è il risultato di un processo, detto appunto di astrazione, secondo il quale, assegnato un sistema, si possono tenere nascosti alcuni particolari evidenziando invece quelli che si ritengono essenziali ai fini della corretta comprensione del sistema. l'astrazione nasce dall'individuazione di proprietà simili tra certi oggetti, situazioni o processi del mondo reale e dalla decisione di concentrarsi su quelle queste proprietà simili ed di ignorare, temporaneamente, le loro differenze. oggetti simili hanno comportamenti uguali (metodi) e caratteristiche specifiche (attributi) che li differenziano tra loro: sono raccolti in classi, in essa vengono descritti i comportamenti e le proprietà degli oggetti. CLASSE La classe è l'elemento base della OOP e un programma oggetti è costituito da un insieme di classi che genere che generano oggetti che tra loro comunicano con scambi di messaggi. EREDITARETA’ Sei una classe non soddisfa appieno le esigenze specifiche di un caso particolare è possibile completarla: si parla di classe ereditata e dell’ereditarietà, che permette di modellare e specializzare le classi già esistenti. INCAPSULAMENTO Nella OOP si realizza quello che comunemente prende il nome di “information hiding”, cioè l'incapsulamento, fornendo all'utente un meccanismo di interfacciamento che garantisce il mascheramento del funzionamento interno dell’oggetto: solo attraverso l'interfaccia si interagisce con la classe e la classe stessa comunica all’esterno solo per “cosa fa” e non per “come lo fa”. VANTAGGI DELLA OOP Alcuni concetti fondamentali di un progetto di sistema informatico:
sistema senza dover intervenire radicalmente sul codice
Dai principi fondamentali della programmazione oggetti ci accorgiamo che essa è la risposta ogni esigenza
Un programma OOP si basa essenzialmente sull’utilizzo di moduli software già preparati GLI OGGETTI e LE CLASSI L’elemento fondamentale nella OOP è l’oggetto, questa è la rivoluzione per cui la OOP può considerarsi come un nuovo paradigma che riunisce codice e dati. La programmazione OOP l'oggetto è dunque un'istanza di una classe. Tra classe oggetto vi è la stessa relazione che sussiste fra un tipo e una variabile del paradigma imperativo. Sottolineiamo altri due aspetti fondamentali di questa relazione:
essere utilizzato per realizzare tanti oggetti dello stesso tipo.
strettamente correlate con i dati che manipolano GLI OGGETTI Ogni ogni oggetto, è generalmente differente dagli altri, cioè ha proprietà (attributi) che lo caratterizzano, mentre condivide con gli altri suoi simili il comportamento. Definizione di oggetto: Un oggetto è un'entità astratta dotata di specifici attributi e in grado di cooperare con gli altri oggetti svolgendo specifiche azioni. Un oggetto oggetto e quindi la rappresentazione di una qualsiasi cosa che ha uno Stato è un comportamento: Esempio: OGGETTO: Gatto
Due oggetti gatto si distinguono tra loro per il colore, la razza, l'età, il peso eccetera, Cioè per tutte le caratteristiche fisiche individuali di ogni animale, ma tutti i gatti mangiano, corrono, bevono il latte eccetera, allo stesso modo. LE CLASSI La classe costituisce la base della OOP: essa descrive la natura di un oggetto e ne definisce il suo comportamento. Una classe è un ”modello” per un insieme di oggetti “analoghi”, caratterizzati:
insieme di oggetti che hanno gli stessi attributi (variabili) eseguono le stesse operazioni (funzioni o metodi)
La classe si può pertanto definire come lo schema base dal quale è possibile creare singoli oggetti.
La descrizione dei metodi e delle variabili è contenuta all'interno della classe. Tutti gli oggetti istanza di una stessa classe:
Nella progettazione di una classe è necessario:
astratto a cui gli oggetti appartengono All'interno della classe è possibile specificare il tipo di visibilità e i dati e i codice tramite i seguenti modificatori di accesso:
Nell'ambito dell'ingegneria del software è stato definito un apposito linguaggio per la descrizione grafica dei progetti, il linguaggio UML. Per le casse sono previsti due vani di rappresentazione:
nome della classe
Anche per gli oggetti la notazione simile, ma il rettangolo ha solo sezioni:
attributi
La classe è composta da attributi e metodi dove i metodi non sono altro che le funzioni che possono modificare il valore degli attributi. Possiamo distinguere alcune categorie di metodi:
spazio necessario per memorizzare gli attributi e lasciarlo al termine dell'utilizzo dell’oggetto
attributi che, per rispettare l’incapsulamento, vengono dichiarati privati. Affinché un metodo possa essere utilizzato al di fuori della classe deve essere dichiarato di tipo pubblic: insieme nei metodi pubblic costituisce l'interfaccia della classe che gli permette di interagire col mondo esterno. COSTRUTTORI La OOP mette di metodi che servono per la creazione dell’oggetto: costruttori. Un metodo costruttore è un metodo particolare, che si distingue dagli altri per tre elementi:
Il costruttore di default è il costruttore che viene automaticamente creato quando si dichiara una classe e non contiene alcun codice Oltre al costruttore di default nella classe si inseriscono generalmente altre costruttori che però hanno uno o più parametri in ingresso, in modo che, alla creazione dell’oggetto, l'utilizzatore possa contemporaneamente assegnare dei valori ai suoi attributi. OVERLOADING La possibilità offerta del linguaggi a oggetti di consentire la coesistenza di più metodi con lo stesso nome prende il nome di overloading Classe può contenere più costruttori e metodi con lo stesso nome pur distinti da intestazioni (signature) diverse, cioè:
Ricordiamo solamente che il costruttore serve per effettuare tutte quelle azioni di “pulizia” che risultano necessari prima della deallocazione dell’oggetto, ovvero:
Public void finalize(){}
Per ogni attributo vengono scritte due funzioni che, che a seconda delle situazioni, possono essere definite pubbliche o private, antecedendo il nome del metodo l'opportuno qualificatore (o modificatore) CREAZIONE DI OGGETTI IN JAVA Nome classe nome oggetto = new nome classe(); INVOCAZIONE DEI METODI Oggetto.metodo DUPLICAZIONE DI OGGETTI E COSTRUTTORE DI COPIA Dado dado3 = new Dado(dado1)