Estratto del documento

In Java si possono importare anche metodi e attributi

static di una classe. Questo permette di accedere ai

membri static di una classe senza dover ripetere ogni

volta il nome delle classi.

Incapsulamento controllare la visibilità

Attraverso l’uso di modificatori di visibilità,

l’incapsulamento protegge gli attributi di un oggetto

impedendo l’accesso diretto da codice esterno alla

classe.

Come funziona l’incapsulamento:

1) Attributi privati, gli attributi di una classe sono

dichiarati come private per evitare accessi e

modifiche dirette non controllate;

2) Interfaccia pubblica, permettono di eseguire

operazioni sugli attributi privati in modo sicuro e

controllato (come i metodi getter e setter).

Ereditarietà

E’ un meccanismo fondamentale che consente a una

nuova classe di acquisire proprietà (attributi) e

comportamenti (metodi) da un’altra classe (classe base

o genitore). La classe risultante (classe derivata o figlia)

può riutilizzare il codice della classe genitore e

aggiungere nuove funzionalità o modificare il

comportamento esistente.

Vantaggi dell’ereditarietà:

1) Riutilizzo del codice, permette di non riscrivere il

codice che è già stato definito nella classe genitore;

2) Estendibilità, si possono aggiungere nuove

funzionalità alla classe derivata senza modificare il

codice esistente della classe genitore;

3) Organizzazione, favorisce la strutturazione logica

del codice.

L’ereditarietà si indica con la parola chiave extends (si

sta creando una nuova classe derivata da una classe già

esistente). La classe esistente prende il nome di

superclasse mentre la classe derivata prende il nome di

subclass.

In genere, le operazioni più generali fanno parte delle

superclassi mentre le operazioni più specifiche fanno

parte delle sottoclassi.

I metodi e gli attributi vengono ereditati

automaticamente dalla sottoclasse, tuttavia, la

sottoclasse non può accedere direttamente agli

attributi privati della superclasse (si utilizza protected).

Per accedere alle informazioni della superclasse si

utilizza la keyword super.

Viene impiegata principalmente per due scopi:

1) Chiamare il costruttore della classe genitore,

quando una classe derivata viene istanziata, il

costruttore della superclasse può essere

richiamato usando super. Se non viene

esplicitamente dichiarato viene invocato il

costruttore di default della classe genitore;

2) Accedere a metodi e attributi della classe

genitore, se un metodo o un attributo della classe

genitore è stato sovrascritto nella classe derivata,

super permette di accedere alla versione originale

del metodo o dell’attributo (definito nella classe

genitore).

Se la superclasse non ha un costruttore di default e il

costruttore della subclass non invoca un altro

costruttore esplicitamente si ha un errore.

Super e this

This:

1) Indica una referenza ad un parametro implicito;

2) Invoca un altro costruttore della stessa classe.

Super:

1) Invoca metodi di una superclasse;

2) Invoca il costruttore di una superclasse.

Gerarchie di classi

Una classe può ereditare da una classe che a sua volta

eredita da un'altra classe. Questo fenomeno è noto

come gerarchia di ereditarietà. Il percorso da una classe

alla superclasse è chiamato catena gerarchica.

Ereditarietà e final

In Java il modificatore final viene utilizzato per prevenire

modifiche a variabili, metodi e classe. Quando una

classe o un metodo è dichiarato final non può essere

ereditato.

1) Uso di final con le classi, una classe final non può

essere estesa;

2) Uso di final con i metodi, non può essere

sovrascritto da una subclass. In questo modo non si

può modificare il comportamento di un metodo in

una classe derivata.

Se una classe è dichiarata come final automaticamente

tutti i suoi metodi sono considerati come final.

Quindi final dovrebbe essere utilizzato quando si sa che

una classe o un metodo non dovrebbe essere

modificato.

Polimorfismo

E’ un principio fondamentale che permette agli oggetti

di essere trattati come istanze di diverse classi

attraverso una singola interfaccia. Consente di definire

metodi che possono comportarsi in modo diverso a

seconda dell’oggetto sui cui vengono chiamati.

Vantaggi del polimorfismo:

1) Flessibilità, consente di usare lo stesso metodo su

oggetti di classi diverse;

2) Estendibilità, facilita l’aggiunta di nuovi

comportamenti senza modificare il codice

esistente;

3) Riutilizzabilità, migliora il riuso del codice e

l’organizzazione gerarchica delle classi.

Il polimorfismo si divide in:

1) Polimorfismo statico (overloading), avviene nel

compile-time e si verifica quando si hanno più

metodi con lo stesso nome ma con parametri

diversi (definiti nella stessa classe);

2) Polimorfismo dinamico (overriding), avviene a

runtime e si verifica quando una classe derivata

sovrascrive un metodo della classe genitore per

fornire una nuova implementazione.

Overloading del costruttore

L’overloading del costruttore è la possibilità di definire

più di un costruttore all’interno di una classe ognuno

con una diversa firma (diverso numero o tipo di

parametri).

L’overloading permette maggiore flessibilità nella

creazione di oggetti fornendo più opzioni per

inizializzare un oggetto.

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