Oggetto (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Etichette: Modifica da mobile Modifica da web per mobile
Riga 18:
In certi casi, alcuni oggetti possono essere immaginati come sottoprogrammi che possono comunicare fra di loro ricevendo o inviando messaggi attraverso i loro [[metodo (informatica)|metodi]].
 
Una classe può essere vista come un tipo complesso (rispetto ai tipi semplici predefiniti detti primitivi) di [[Variabile (informatica)|variabili]] e un oggetto ([[Istanza (informatica)|istanza]]) può essere visto come una delle variabili di quel tipo. Infatti, creando una classe, si definisce un nuovo tipo di dati.
 
In un [[linguaggio di programmazione|linguaggio]] ad oggetti ogni elemento del linguaggio è chiamato oggetto rded è inteso come una astrazione deldi medesimoun corrispondente oggetto del mondo reale.
Un oggetto ha delle proprietà ([[variabile di istanza|variabili di istanza]]) e può compiere delle azioni, solitamente denominate ''metodi''.
Ritornando all'esempio precedente del cane, l'oggetto cane potrà avere come proprietà il numero di zampe, la tipologia del pelo, il colore, mentre i suoi metodi potrebbero essere ''corri'',''mangia'', ''abbaia'', ''scodinzola''.
 
Un oggetto, dal punto di vista logico, non è mai un elemento a sé stante ma deriva (ovvero estende ed ''eredita'' le funzionalità) sempre da un altro oggetto. Solitamente, l'oggetto principale viene chiamato ''Object'' proprio per identificarlo con un oggetto del mondo reale quanto più generico possibile. Infatti inIn Java, tutti gli oggetti sono una estensione della super classe Object da cui ereditano tutti gli attributi (variabili e metodi).
Questo oggetto definisce dei metodi e delle variabili d'istanza generiche, perché da questo oggetto si faranno poi discendere tutti gli altri oggetti, in questo modo:
 
Riga 40:
Nonostante un blocco di memoria possa apparire contiguo ad un livello di astrazione e non contiguo ad un altro, la cosa importante è che appaia contiguo al programma che lo tratta come oggetto. Ovvero, il programma si preoccupa che l'oggetto debba essere libero da reference interne, perché altrimenti non sarebbe più una primitiva. In altre parole, i dettagli di memorizzazione privata dell'oggetto non devono essere mostrati ai client dell'oggetto, e devono essere in grado di cambiare senza modificare il codice client.
 
Gli oggetti esistono solo all'interno di contesti che li riconoscono come tali; una parte di memoria contiene un oggetto solo se un programma lo tratta come tale (per esempio riservandolo per uso esclusivo di specifiche procedure e/o associandogli un [[tipo di dato]]). Per cui, la vita di un oggetto ècorrisponde lall'intervallo di tempo durante il quale viene trattato come oggetto. Questo è il motivo per cui sono ancora entità concettuali, malgrado la loro presenza fisica in memoria.
 
In altre parole, i concetti astratti che non occupano spazio di memoria durante l'esecuzione non sono, per definizione, oggetti; ad esempio, il comportamento mostrato da un insieme di classi o tipi di dati nei programmi.