Classe (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m WPCleaner v1.34 - Disambigua corretti 2 collegamenti - Incapsulamento, Modello
m Orfanizzo Java (linguaggio) → Java (linguaggio di programmazione), -spazio in eccesso using AWB
Riga 2:
Nella [[programmazione orientata agli oggetti]] una '''classe''' è un costrutto di un [[linguaggio di programmazione]] usato come modello per creare [[Oggetto (informatica)|oggetti]]. Il modello comprende [[variabile (informatica)|attributi]] e [[Metodo (informatica)|metodi]] che saranno condivisi da tutti gli oggetti creati (''[[Istanza (informatica)|istanze]]'') a partire dalla classe. Un "oggetto" è, di fatto, l'istanza di una classe.
 
Una '''classe''' è identificabile come un ''tipo di dato astratto'' che può rappresentare una persona, un luogo, oppure una cosa, ed '''è''' quindi '''l'astrazione di un ''concetto''''', implementata in un [[software]]. Fondamentalmente, essa definisce al proprio interno lo ''stato'', i cui dati sono memorizzati nelle cosiddette [[variabile (informatica)|variabili]] ''membro'' o ''attributi'', e il comportamento dell'entità di cui è rappresentazione, descritto da blocchi di [[codice sorgente|codice]] riutilizzabili chiamati ''[[metodo (programmazione)|metodi]]''.
 
== Le classi nell'analisi ''object-oriented'' ==
Riga 32:
La [[progettazione (ingegneria del software)|progettazione]] è una fase del [[ciclo di vita del software]] concettualmente successiva all'analisi del dominio e all'analisi dei requisiti, in cui ci si pone il problema di come realizzare un sistema software che risponda ai requisiti precedentemente esplicitati. Il risultato di questa fase dovrebbe essere un insieme di [[specifica di progetto|specifiche di progetto]] sufficientemente dettagliate e precise da poter essere utilizzate come unico riferimento per la successiva fase di [[implementare|implementazione]], cioè per la costruzione del prodotto software vero e proprio.
 
La [[progettazione orientata agli oggetti|progettazione object-oriented]] viene generalmente utilizzata nei casi in cui si prevede una implementazione anch'essa orientata agli oggetti, in un linguaggio opportuno come [[C++]] o [[Java (linguaggio di programmazione)|Java]]. Questi linguaggi dispongono infatti di un concetto di ''classe'' (vedi sezione successiva) strutturalmente simile a quello utilizzato in fase di analisi. In tal caso, la progettazione consiste in un [[raffinamento]] e una estensione del modello prodotto dall'analisi. Questa trasformazione del modello avviene sulla base di due linee guida generali:
 
* si identificano tutti i concetti ''nuovi'' legati all'[[architettura software|architettura]] del sistema, ovvero che hanno a che vedere con il modo in cui il sistema dovrà essere realizzato ma che non corrispondono a concetti del dominio. Concetti di questo tipo potrebbero essere ''terminale'', ''utente abilitato'', ''indirizzo IP'', ''base dati'' e così via. Tutti questi concetti non sono afferenti al dominio, ma esclusivamente al sistema, e tuttavia si prestano a essere descritti ancora attraverso il concetto di classe.
 
* le classi del modello risultante (sia quelle derivati dall'analisi che quelle legate all'architettura del sistema) vengono solitamente dettagliate introducendo informazioni aggiuntive che serviranno a guidare l'implementazione; per esempio, si stabiliscono i [[tipo di dato|tipi]] degli attributi e dei [[parametro (programmazione)|parametri]] delle operazioni. Si potrà stabilire, per esempio, che il saldo di un conto corrente sia un numero con la virgola, e analogamente l'operazione "preleva" richieda la specifica di un numero con la virgola che rappresenta la somma da prelevare.