Estratto del documento

Quando vengono utilizzati:

1) Quando si vuole dare un nome descrittivo alla

creazione di un oggetto;

2) Quando si ha bisogno di flessibilità nel tipo di

oggetto creato;

3) Quando si vuole ottimizzare la creazione di oggetti.

I vantaggi dei Factory methods sono:

1) Nome del metodo personalizzabile, a differenza

dei costruttori che devono avere lo stesso nome

della classe, i factory methods possono avere un

nome descrittivo;

2) Flessibilità del tipo di ritorno, può restituire un

oggetto di una subclass della casse stessa (può

restituire un oggetto appartenente ad una subclass

o riutilizzare oggetti esistenti).

Classi wrapper

Vengono utilizzate per convertire un tipo primitivo in un

oggetto.

Ogni tipo primitivo ha una corrispondente classe

wrapper che consente di rappresentare il valore

primitivo come un oggetto. Le classi wrapper sono

immutabili e final (dopo che sono state create il loro

valore non può essere modificato).

Per passare da un tipo primitivo ad un oggetto si utilizza

il metodo valueOf() (creare un’istanza di una classe

wrapper a partire da un tipo primitivo).

Per passare da un oggetto ad un tipo primitivo si utilizza

il metodo intValue() (da un’istanza di una classe

wrapper si ottiene il suo valore primitivo).

Autoboxing e unboxing

L’autoboxing è il processo automatico con cui Java

converte un valore primitivo in un’istanza della sua

corrispondente classe wrapper.

L’unboxing è il processo con cui un’istanza della classe

wrapper viene automaticamente convertita nel

corrispondente valore primitivo.

Le classi wrapper offrono metodi di utilità per lavorare

con i tipi primitivi in modo più flessibile. Un esempio è

Integer.parseInt(String s) che converte una stringa in un

valore primitivo int.

Main

Il metodo main è il punto di ingresso di ogni programma

Java (è il primo metodo che viene eseguito quando si

avvia un programma).

Le principali caratteristiche di un metodo main:

1) Statico, poiché i metodi static possono essere

invocati senza creare un’istanza della classe;

2) Invocazione automatica, al runtime la Java Virtual

Machine invoca automaticamente il metodo main;

3) Il metodo main non opera su alcun oggetto, poiché

al momento della sua esecuzione non esistono

ancora istanze.

Scope e distruzione di un oggetto

Lo scope di una variabile definisce dove essa è

accessibile e per quanto tempo rimane attiva. Gli

oggetti seguono regole di lifetime diverse dai tipi

primitivi poiché quando un riferimento esce dallo scope

potrebbe continuare ad essere presente in memoria fino

a quando il garbage collector non lo elimina.

La distruzione degli oggetti in Java avviene:

1) Garbage collection, Java gestisce

automaticamente la liberazione della memoria

tramite il garbage collector;

2) Assenza di distruttori, Java non supporta i

distruttori come meccanismo esplicito per

deallocare risorse.

Per gli oggetti che gestiscono risorse non di memoria è

importante gestire la chiusura di tali risorse (come, ad

esempio, il metodo close per eseguire le operazioni di

pulizia necessarie quando l’oggetto non viene più

utilizzato).

Metodi finalize e cleaner

Finalize è un metodo utilizzato per eseguire operazioni

di pulizia, tuttavia, è sconsigliata poiché è inefficiente

(non garantisce la tempestiva esecuzione della pulizia).

In Java 9 è stata introdotta la classe cleaner che

permette di registrare le azioni da eseguire

automaticamente quando un oggetto non è più

raggiungibile (approccio più sicuro).

I tre principi fondamentali della programmazione ad

oggetti

L’OOP si basa su tre pilastri fondamentali:

1) Incapsulamento, è il principio di nascondere i

dettagli interni di come un oggetto è implementato,

esponendo solo le operazioni che gli altri oggetti

possono utilizzare per interagire con esso;

2) Ereditarietà, permette di creare una nuova classe

che è una versione estesa di una classe esistente.

Questa nuova classe eredita attributi e metodi della

classe genitore, consentendo la riutilizzazione del

codice e la creazione di gerarchie di classi;

3) Polimorfismo, è la capacità di un’interfaccia di

essere implementata da diverse classi in modi

diversi. Permette di trattare oggetti di classi diverse

sotto la stessa interfaccia, rendendo il codice più

flessibile e riutilizzabile.

Incapsulamento

Perché si utilizza l’incasulamento?

1) Sicurezza dei dati, impedisce accessi esterni non

autorizzati agli attributi dell’oggetto, proteggendo

l’integrità e prevenendo usi impropri;

2) Facilità di manutenzione, permette di cambiare

l’implementazione interna senza influenzare le altre

parti del programma che utilizzano l’oggetto;

3) Riduzione di complessità, fornisce un’interfaccia

chiara per ogni oggetto.

Controllare la visibilità

La visibilità è la possibilità di accedere agli attributi e

metodi di una classe da altre parti del codice. La

visibilità è regolata dai modificatori di accesso.

I modificatori di visibilità determinano da dove gli

attributi e i metodi di una classe possono essere

accessibili.

1) Pubblica (public), accesso consentito da qualsiasi

parte del codice;

2) Privata (private), accesso consentito solo

all’interno della stessa classe;

3) Package (package), accesso consentito solo dalle

classi nello stesso package;

4) Protetta (protected), accesso consentito solo dalle

sottoclassi e dalle classi nello stesso package.

Package

Anteprima
Vedrai una selezione di 3 pagine su 7
Programmazione ad oggetti (2)  Pag. 1 Programmazione ad oggetti (2)  Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Programmazione ad oggetti (2)  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