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
* 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);
|