Una classe rappresenta un'astrazione di un concetto o di un elemento fisico, mentre un oggetto rappresenta un'entità reale. Un oggetto ha un limite ben definito ed è significativo nell'applicazione. Gli oggetti hanno le caratteristiche elencate nella seguente tabella:
| Caratteristica | Descrizione |
|---|---|
| Stato | Lo stato è la condizione in cui può esistere un oggetto. Lo stato di un oggetto è implementato con una serie di attributi e generalmente cambia nel tempo. |
| Funzionalità | La funzionalità determina in che modo un oggetto risponde alle richieste di altri oggetti. La funzionalità è implementata da una serie di operazioni. |
| Identità | L'identità di un oggetto lo rende univoco. È possibile utilizzare l'identità univoca di un oggetto per distinguere più istanze di una classe, se ogni istanza ha lo stesso stato. |
Ogni oggetto deve avere un nome univoco. Un nome oggetto completo è composto da tre parti: nome oggetto, nome ruolo e nome classe. È possibile utilizzare qualsiasi combinazione delle parti quando si denomina un oggetto. La seguente tabella mostra diverse variazioni di nomi oggetto per un sistema di acquisti online.
| Sintassi | Esempio | Descrizione |
|---|---|---|
| oggetto/ruolo:classe | cart100/storage:cart | Un'istanza specificata (cart100) della classe cart che esegue il ruolo di memorizzazione durante un'interazione. |
| oggetto:classe | cart100:cart | Un'istanza specificata (cart100) della classe cart |
| /ruolo:classe | /storage:cart | Istanza anonima della classe cart che esegue il ruolo di memorizzazione in un'interazione. |
| oggetto/ruolo | cart/storage | Un oggetto denominato cart che esegue il ruolo di memorizzazione. Tale oggetto è un'istanza che nasconde il nome della classe o è un'istanza non associata a una classe. |
| oggetto | cart100 | Un oggetto denominato cart100. Tale oggetto è un'istanza che nasconde il nome della classe o è un'istanza non associata a una classe. |
| /ruolo | /storage | Un'istanza anonima esegue il ruolo di memorizzazione. Tale oggetto è un'istanza che nasconde il nome dell'oggetto e la classe o è un'istanza non associata a un oggetto o a una classe. |
| :classe | :cart | Istanza anonima della classe customer. |
La seguente tabella illustra i tre tipi di oggetti.
| Tipi di oggetti | Descrizione |
|---|---|
| Attivo | Un oggetto attivo possiede un thread di controllo e può attivare l'attività di controllo. I processi e le attività sono tipi di oggetti attivi. |
| Passivo | Un oggetto passivo contiene dati, ma non attiva un controllo. |
| Istanza multipla | Una raccolta di oggetti o di più istanze della stessa classe. Più istanze vengono generalmente utilizzate per mostrare che una serie di oggetti interagisce con un singolo messaggio (o stimolo). |