Oggetto (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichette: Modifica da mobile Modifica da web per mobile
Etichette: Modifica da mobile Modifica da web per mobile
Riga 7:
In particolare nella [[programmazione orientata agli oggetti]] (OOP), l'oggetto è un esemplare (in [[lingua inglese|inglese]]: ''instance'', comunemente anche se impropriamente tradotto con istanza) di una [[classe (informatica)|classe]], unico e separato dagli altri oggetti (secondo il concetto di [[Incapsulamento (informatica)|incapsulamento]]) con i quali può tuttavia "comunicare".
 
Generalmente, si considerano come oggetti tutte quellele entità dotate di una propria identità. Tuttavia, non tutte le entità di un problema devono essere necessariamente oggetti, dipende dalla natura del problema, che può consentire o richiedere di trascurare o meno certe entità perché non significative per il problema stesso. Gli oggetti, inoltre, possono anche essere composti da altri oggetti, in tal caso si deve approfondire l'analisi ed individuare i singoli componenti sino a che il livello più basso contenga soltanto oggetti atomici.
 
Per '''definire''' un oggetto è quindi necessario individuare:
* Lele sue caratteristiche ('''attributi'''), effettuandoattraverso la cosiddetta astrazione sui dati.;
* Lele azioni che può compiere e/o subire ('''metodi'''), effettuandocon la cosiddetta astrazione funzionale.
 
Un''''''istanza''''' è un particolare oggetto di una determinata [[classe (informatica)|classe]]. Ogni istanza è separata dalle altre, ma condivide con gli altri oggetti della stessa classe le sue caratteristiche generali, attraverso (la comune descrizione dei campi e dei metodi) con gli altri oggetti della stessa classe. Per esempio, il mio cane, "Bobbi", può essere rappresentato da un oggetto di nome bobbi istanziatocreato acome partireistanza dalladella classe "Cane", con un attributo nome che contiene il suo nome "Bobbi".
* Le sue caratteristiche ('''attributi'''), effettuando la cosiddetta astrazione sui dati.
* Le azioni che può compiere e/o subire ('''metodi'''), effettuando la cosiddetta astrazione funzionale.
 
Un''''''istanza''''' è un particolare oggetto di una determinata [[classe (informatica)|classe]]. Ogni istanza è separata dalle altre, ma condivide le sue caratteristiche generali (la descrizione dei campi e dei metodi) con gli altri oggetti della stessa classe. Per esempio, il mio cane, "Bobbi", può essere rappresentato da un oggetto di nome bobbi istanziato a partire dalla classe "Cane" con un attributo nome che contiene il suo nome.
 
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 dato (nuovo, rispetto a quelli predefiniti e forniti con le librerie del linguaggio usato).
 
In un [[linguaggio di programmazione|linguaggio]] ad oggetti (OOP) ogni elemento del linguaggio è chiamatoun oggetto ed è inteso come una astrazione di un corrispondente oggetto del mondo reale. Un oggetto del mondo reale ha delle caratteristiche e dei comportamenti.
 
Un oggetto del mondo reale ha delle caratteristiche e dei comportamenti. Mentre, un oggetto OOP è la rappresentazione informatica di un oggetto del mondo reale.
 
In altre parole, un oggetto OOP è la rappresentazione informatica di un oggetto del mondo reale. Nella OOP le caratteristiche degli oggetti reali sono rappresentate da valori contenuti inusando ([[variabile di istanza|variabili di istanza]]) mentre i loro comportamenti sono rappresentati con blocchi di istruzioni detti ''metodi''.
 
Ritornando all'esempio precedente del cane Bobbi, l'oggetto OOP corrispondente potràpotrebbe avere delle variabili che descrivono il numero di zampe, la tipologia del pelo, il colore, e dei metodi con nomi come ''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.
In un [[linguaggio di programmazione|linguaggio]] ad oggetti ogni elemento del linguaggio è chiamato oggetto ed è inteso come una astrazione di un corrispondente oggetto del mondo reale. Un oggetto del mondo reale ha delle caratteristiche e dei comportamenti.
In altre parole, un oggetto OOP è la rappresentazione informatica di un oggetto del mondo reale. Nella OOP le caratteristiche degli oggetti reali sono rappresentate da valori contenuti in ([[variabile di istanza|variabili di istanza]]) mentre i loro comportamenti sono rappresentati con blocchi di istruzioni detti ''metodi''.
Ritornando all'esempio precedente del cane Bobbi, l'oggetto OOP corrispondente potrà avere delle variabili che descrivono il numero di zampe, la tipologia del pelo, il colore, e dei metodi con nomi come ''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. In 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: