Estratto del documento

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.Nome denota la variabile d'istanza nome associata all'oggetto.
  • Balto.Nome e Scooby.Nome sono 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:

  1. public void specieDelMese {System.out.println("nome" + nome);}
  2. public void specieDelMese {System.out.println("nome" + this.nome);}
  3. 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).

Anteprima
Vedrai una selezione di 3 pagine su 8
Definire classi e creare oggetti Pag. 1 Definire classi e creare oggetti Pag. 2
Anteprima di 3 pagg. su 8.
Scarica il documento per vederlo tutto.
Definire classi e creare oggetti Pag. 6
1 su 8
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ivyB di informazioni apprese con la frequenza delle lezioni di Programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Verona o del prof Solitro Ugo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community