Classe (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m sistemazione link ed esempio
m WPCleaner v1.34 - Disambigua corretti 2 collegamenti - Incapsulamento, Modello
Riga 22:
Le singole entità vengono dette [[istanza (informatica)|istanze]] (ovvero esempi, casi particolari) della loro classe di appartenenza. Così, il ''mio'' conto corrente è un'istanza della classe ''conto corrente''.
 
Il [[Modello concettuale (informatica)|modello]] del dominio che l'analisi va a definire può essere arricchito da una serie di informazioni aggiuntive che riguardano le relazioni fra le diverse classi identificate. Fra gli esempi solitamente più importanti di relazione si possono citare i seguenti:
 
* le [[associazione (informatica)|associazioni]] specificano relazioni fra le istanze delle classi; per esempio, il fatto che i conti correnti siano ''intestati a'' clienti della banca definisce un'associazione fra la classe ''conto corrente'' e la classe ''cliente'';
Riga 46:
Un linguaggio orientato agli oggetti fornisce un costrutto di ''classe'' strutturalmente corrispondente al concetto astratto di ''classe'' menzionato sopra: una classe descrive un tipo di oggetti (~ una ''categoria di entità'') in termini di un insieme di variabili interne o [[variabile d'istanza|variabili d'istanza]] di cui tali oggetti sono dotati (~ ''attributi'') e un insieme di procedure dette [[metodo (informatica)|metodi]] che possono essere eseguite su di essi (~ ''operazioni''). Una variabile interna di una classe che contenga un [[puntatore (programmazione)|riferimento]] a un'istanza di un'altra classe può corrispondere a un'associazione; una variabile interna che contenga direttamente un'istanza vera e propria può considerarsi trasposizione implementativa del concetto di aggregazione; e infine l'[[ereditarietà]] corrisponde direttamente alla relazione ISA.
 
Se da un punto di vista storico e tecnico la classe dei linguaggi orientati agli oggetti si può considerare come una evoluzione del [[Struttura dati#Record o struttura|record]] di linguaggi procedurali tipo [[linguaggio C|C]] o [[Pascal (linguaggio)|Pascal]], essa sottende un approccio completamente diverso alla programmazione, in cui i [[tipo di dato|tipi di dati]], corredati delle loro operazioni (metodi) diventano centrali. Gran parte delle novità significative di questo approccio sono legate ai concetti di [[ereditarietà]], [[incapsulamento (informatica)|incapsulamento]] o [[information hiding]] e [[Polimorfismo (informatica)|polimorfismo]].
 
== Le classi in UML ==
[[UML]] è una notazione grafica semi-formale che consente di descrivere un sistema (non necessariamente software) creandone un [[modello]] basato sui concetti propri dell'orientamento agli oggetti. Poiché tutte le fasi del [[ciclo di vita del software]] orientato agli oggetti utilizzano strumenti concettuali analoghi (classi, associazioni, relazioni ISA), UML può essere usato in modo omogeneo in tutte le fasi. La conseguente uniformità di descrizione ha una serie di vantaggi:
 
* maggiore facilità della verifica della rispondenza di ciascuna fase ai vincoli imposti dalla precedente (per esempio, verifica che l'implementazione sia coerente con i requisiti);