Oggetto (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
→‎Ambiti: Migliorato la forma e aggiunto nuove informazioni ed esempi.
Etichette: Nowiki inseriti da dispositivo mobile Modifica da mobile Modifica da web per mobile
Etichette: Modifica da mobile Modifica da web per mobile
Riga 58:
In pratica, un oggetto viene creato in base a un modello astratto chiamato classe. Una classe consiste in un blocco di istruzioni caratterizzato da un proprio nome, propri dati (gli attributi) e proprie istruzioni (metodi) per gestirli (leggerli e modificarli). Perciò, prima di definire un oggetto dovremo descrivere in astratto la sua classe e dovremo definire le variabili necessarie a contenere i suoi dati e i metodi per gestirli. In concreto l'oggetto è creato come istanza della sua classe e prende vita ricevendo da altri oggetti i valori da assegnare alle sue variabili. Giova ricordare che nella OOP ogni programma è costituito da oggetti che interagiscono tra loro (ricevendo e trasmettendo dati ad altri oggetti).
 
lePer esempio, dovendo rapresentare un cane di nome "doggy" potremo rappresentarlo come un'[[Istanza (informatica)|istanza]] di un tipo di d(una [[Classe (informatica)|classe]]) chiam[[Classe (informatica)|C]]<nowiki/>ta "cane", che è a sua [[Classe (informatica)|arà una s]]<nowiki/>una sottocla[[Classe (informatica)|ella classe]] e[[Classe (informatica)|A]]<nowiki/>di "animale". Nel caso di oggetto [[polimorfismo (informatica)|polimorfico]], alcuni dettagli del suo tipo possono essere ignorati selettivamente, per esempio un oggetto "cane" potrebbe essere usato da una funzione che cerca un "animale". Lo stesso vale per un oggetto di tipo "gatto", perché anche lui deriva dalla classe "animale". Mentre accediamo a un oggetto come "animale", alcuni attributi di "cane" e "gatto" restano inaccessibili, ad esempio l'attributo "coda", perché non tutti gli animali hanno una coda.
Per e
 
esemdovendo rapresentarerun cane aeto dal mondo rdi nome "doggy" eale mmorrappresentarlo come unaè un'[[Istanza (informatica)|istanza]] di un tipo di d(una [[Classe (informatica)|classe]]) chiam[[Classe (informatica)|C]]<nowiki/>ta "cane", che è a sua [[Classe (informatica)|arà una s]]<nowiki/>una sottocla[[Classe (informatica)|ella classe]] e[[Classe (informatica)|A]]<nowiki/>di "anima
 
le". Nel caso di oggetto [[polimorfismo (informatica)|polimorfico]], alcuni dettagli del suo tipo possono essere ignorati selettivamente, per esempio un oggetto "cane" potrebbe essere usato da una funzione che cerca un "animale". Lo stesso vale per "gatto", perché anche lui deriva dalla classe "animale". Mentre accediamo come "animale", alcuni attributi di "cane" e "gatto" restano inaccessibili, ad esempio l'attributo "coda", perché non tutti gli animali hanno una coda.
 
Riepilogando, gli oggetti hanno tre caratteristiche:
Line 71 ⟶ 67:
#In particolare esistono diversi tipi di oggetti:
#
#Alcuni nomi sono usati per indicare alcuni oggetti speciali:
#
#
#Alcuni nomi sono usati per alcuni oggetti speciali:
#
#
#
#A
#
#
#
 
Alcuni termini per tipi di oggetto speciali sono:
 
* Oggetto ''[[singleton]]'' - un oggetto che rappresenta l'unica istanza di una classe nell'esecuzione di un programma.
* Functor ([[oggetto funzione]]) - un oggetto con un solo metodo (in C++, questo metodo potrebbe essere l'operatore di funzione, "operator()") che agisce come una funzione (simile ad un puntatore C/C++ ad una funzione).
Line 94 ⟶ 78:
 
=== Esempi: ===
Per capire meglio cosa sia un oggetto vediamo un semplice esempio del codice che in linguaggio Java è necessario per creare un oggetto che rappresenta un cane di nome "doggy".
 
Per prima cosa definiremo la classe Cane:
Altri esempi:<source lang="Java">
 
<b>class</b> Cane {
 
private String nome;
 
// metodo costruttore
 
// metodo costruttore
 
 
Cane(String nome) {
 
this.nome=nome;
 
 
}
 
 
public getNome() {
 
return nome;
 
}
 
}
</source>
 
Dopo avere definito la classe Cane potremo creare l'oggetto "doggy" come sua istanza con l'istruzione: <source lang="Java">new</source>. Il modo più semplice per impostare i dati dell'oggetto doggy è quello di usare il metodo costruttore (omonimo della classe Cane) con le istruzioni (da inserire nel metodo main):
<source lang="Java">
 
Cane doggy = new Cane("doggy");
</source>
 
Per far visualizzare il nome associato all'oggetto di tipo Cane e nome doggy basterà scrivere:
<source lang="Java">
System.out.print( <b>doggy.getNome()</b> );
</source>
 
Altri esempi Java:<source lang="Java">
System.out.print( doggy.getNome() );
 
 
Altri esempi:<source lang="Java">
public class ObjectRecall
{