Estratto del documento

La call by value è il metodo che riceve una copia del

valore passato come parametro ed ogni modifica al

parametro che avviene all’interno del metodo non

influisce sulla variabile originale (utilizzato da Java e dai

tipi primitivi).

La call by reference è il metodo che riceve l’indirizzo

della variabile, la quale permette di modificare il valore

della variabile originale.

• Tipi primitivi, quando si passano a un metodo, il

valore viene copiato e qualsiasi modifica al

parametro all’interno del metodo non influisce sulla

variabile originale;

• Riferimenti ad oggetti, viene copiato il riferimento

dell’oggetto (non l’oggetto stesso). Si può

comunque modificare lo stato dell’oggetto a cui il

riferimento punta.

GETTER E SETTER

Un metodo mutatore (setter) è un metodo che consente

di cambiare lo stato dell’oggetto sul quale è invocato.

Un metodo accessore (getter) è un metodo che non

cambia l’oggetto sul quale è invocato.

THIS

La keyword this viene utilizzata in un oggetto per fare

riferimento all’istanza corrente della classe.

I principali utilizzi di this:

• Risoluzione di ambiguità, quando i nomi degli

attributi (di istanza) e dei parametri (dei metodi)

coincidono viene utilizzato per distinguere

l’attributo dal parametro;

• Chiamare altri metodi, può essere utilizzato per

invocare un metodo;

• Chiamare un costruttore da un altro, può essere

utilizzato per chiamare un altro costruttore (della

stessa classe).

Chiamata ad un altro costruttore

Quando la prima istruzione di un costruttore è this() il

costruttore sta chiamando un altro costruttore della

stessa classe. Questa tecnica è utile per riutilizzare

codice comune tra i costruttori.

Metodi parametri impliciti ed espliciti

Quando un metodo viene invocato su un oggetto il

parametro implicito è l’oggetto stesso su cui il metodo

viene eseguito (non è visibile nella dichiarazione del

metodo).

È possibile fare riferimento esplicito al parametro

implicito usando la keyword this.

Parametri espliciti

I parametri espliciti sono i valori passati tra le parentesi

tonde quando si definisce o si invoca un metodo (sono

specificati esplicitamente nella dichiarazione del

metodo). Possono essere zero, uno o più.

Usare this permette di distinguere quando si fa

riferimento agli attributi dell’oggetto e quando si usano

variabili locali nel metodo.

Modificatore di non accesso final

Gli attributi dichiarati come final devono essere

inizializzati quando viene creato l’oggetto della classe e

una volta assegnato un valore a un attributo final non

può più essere modificato (read-only).

È particolarmente utile per i tipi primitivi e per le classi

immutabili (String). Se viene applicato agli oggetti rende

immutabile solo il riferimento all’oggetto ma non gli

attributi dell’oggetto stesso.

Inizializzazione di default degli attributi

Se non viene specificato esplicitamente un valore per

un attributo nel costruttore, Java lo inizializza

automaticamente con un valore di default (che dipende

dal tipo). Tuttavia, fare affidamento sull’inizializzazione

di default non è una buona pratica poiché potrebbe

portare a valori non desiderati.

Differenza tra attributi e variabili locali:

• Gli attributi vengono inizializzati automaticamente;

• Le variabili locali in un metodo non vengono

inizializzate automaticamente (devono essere

assegnate esplicitamente).

L’inizializzazione esplicita può avvenire:

• Nel costruttore, per fornire valori specifici per

ciascuna istanza;

• Fuori dal costruttore, per evitare la ripetizione

dell’inizializzazione.

• Blocchi di inizializzazione, inserendo il codice di

inizializzazione in un blocco di codice.

Blocchi di inizializzazione

Il blocco di inizializzazione viene eseguito ogni volta che

un oggetto viene costruito prima dell’esecuzione del

codice del costruttore.

Ordine di esecuzione alla creazione di un oggetto:

1) Se il costruttore chiama un altro costruttore (this),

quel costruttore viene eseguito per primo;

2) Inizializzazione predefinita degli attributi, tutti gli

attributi vengono inizializzati al loro valore di

default;

3) Esecuzione dei blocchi di inizializzazione,

nell’ordine in cui sono definiti;

4) Esecuzione del costruttore, viene eseguito il corpo

del costruttore.

Attributi e variabili static

Un attributo dichiarato come static è un attributo per il

quale esiste solo una copia per tutta la classe. Mentre

gli attributi di istanza (non-static) sono separati per ogni

istanza della classe.

Si può accedere agli attributi static utilizzando

direttamente il nome della classe senza creare

un’istanza mentre gli attributi di istanza necessitano di

istanze della classe.

Blocchi di inizializzazione statici

Per inizializzare attributi static è buona norma utilizzare

un blocco di inizializzazione statico.

Metodi static

Un metodo static è un metodo che non opera sugli

oggetti della classe e non può accedere direttamente

agli attributi e ai metodi non-static della classe.

Anteprima
Vedrai una selezione di 3 pagine su 7
Programmazione ad oggetti e Java (1)  Pag. 1 Programmazione ad oggetti e Java (1)  Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Programmazione ad oggetti e Java (1)  Pag. 6
1 su 7
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 mdi03 di informazioni apprese con la frequenza delle lezioni di Programmazione ad oggetti 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à Politecnica delle Marche - Ancona o del prof Corradin Enrico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community