Le basi della ricorsione
Oggetti e classi
Nome oggetto: Paco
- Razza: Golden
- Nome: Paco
- Anni: 16
Gli oggetti di un programma possono rappresentare oggetti della vita reale o astrazioni; una classe è la definizione del tipo di oggetto. È come uno stampo per oggetti di un certo tipo.
Cani e classi
Nome classe: Cani
Attributi:
- Razza: String
- Nome: String
- Anni: int
Metodi (azioni):
- scriviOutput()
- getEtàInAnniUmani()
Nome oggetto: Charlie
- Razza: Chiuaua
- Nome: Charlie
- Anni: 1
Istanze di oggetti
La figura mostra due oggetti di tipo Cane; ciascuno è detto o della classe; si possono istanziare attributi dati quindi più oggetti della stessa classe. Una classe specifica gli attributi o i metodi degli oggetti della stessa classe, ma la definizione di una classe non specifica il valore degli attributi: non include quindi né numeri né stringhe. I valori degli attributi sono definiti nei singoli oggetti.
Una classe definisce inoltre le azioni che possono essere svolte dagli oggetti e come queste azioni vengono svolte attraverso i metodi. Tutti gli oggetti di una classe hanno gli stessi metodi!
Infine, ogni nuovo oggetto ha un suo nome con cui riferirsi ad esso: nell'esempio Paco e Charlie sono i nomi degli oggetti.
Variabili di istanza
Come abbiamo visto, la classe Cane crea oggetti, ognuno dei quali avente:
- Variabili d'istanza: nome, razza, età
- Metodi d'istanza: scriviOutput(), getEtaInAnniUmani()
Ricapitolando dal capitolo 1
- È necessario salvare ciascuna classe in un file distinto che avrà come estensione .java.
- Un file che contiene la definizione della classe avrà lo stesso nome della classe: la classe che crea l'oggetto "Cane" sarà nel file Cane.java.
- È possibile compilare una classe Java prima di avere un programma che la utilizzi; il bytecode viene memorizzato in un file con lo stesso nome della classe ma estensione .class; una volta che è stato generato il file, non è più necessario ricompilare la classe.
Si noti che a ciascuna variabile è associato un tipo (es. età è int...). Ciascun'istanza di questa classe possiede quindi una propria copia di queste tre variabili.
N.B.:
- Per creare un nuovo oggetto sarà
Cane Balto = new Cane(); - La scrittura
Balto.Nomedenota la variabile d'istanza nome associata all'oggetto. Balto.NomeeScooby.Nomesono due variabili diverse e possono quindi avere valori diversi.
Metodi d'istanza
Un metodo d'istanza è un metodo che viene invocato su un oggetto e che può manipolare lo stato dell'oggetto stesso: balto.scriviOutput();
Un metodo d'istanza definito in una classe viene invocato usando un oggetto di quella classe, ovvero nell'invocazione nomeOggetto.metodoDIstanza();
Si noti che non compare il modificatore static, perché se non presente allora il metodo dichiarato è un metodo di istanza. Nei metodi di istanza, si può fare riferimento alle variabili di istanza dell'oggetto definite nella classe.
Per esempio: System.out.println("nome" + nome) stampa la stringa "nome Balto", se il metodo scriviOutput è stato chiamato proprio sull'oggetto Balto come sopra.
N.B.: tutte le definizioni di metodi d'istanza sono definite nella classe relativa all'istanza, e come conseguenza, essi possono essere usati con oggetti della classe.
Valori di default
N.B.: Quando viene istanziato un oggetto, i valori delle sue variabili sono di default. Quindi, un "int" assumerà valore 0, un "boolean" false etc. Una variabile di tipo classe, come String, assumerà valore null.
La parola chiave this
Al di fuori della definizione della classe, il nome delle variabili di istanza è composto da nomeOggetto.variabileDIstanza. Al contrario, all'interno della definizione di un metodo che risiede nella stessa classe della variabile di istanza, si utilizza solo il nome della variabile di istanza.
Se per esempio ho:
public void specieDelMese {System.out.println("nome" + nome);}public void specieDelMese {System.out.println("nome" + this.nome);}public void specieDelMese {System.out.println("nome" + Balto.nome);}
Nell'esempio, sono equivalenti 1, 2 e 3.
Modificatori d'accesso e metodi get e set
Si ricorda intanto la necessità di mettere a inizio di ogni... (continua con le informazioni successive non fornite nel testo).
-
Filosofia del diritto - Definire la Giustizia
-
Come definire lo sviluppo economico
-
Psicologia delle organizzazioni - Come definire la cultura in generale e la struttura della cultura
-
Riassunto esame Storia della Giustizia, prof. Cernigliaro, libro consigliato Definire la Giustizia, Zagrebelski