Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Classi ed oggetti in Java, Appunti di Programmazione Java

Appunti schematici sulle classi e gli oggetti nel linguaggio di programmazione Java

Tipologia: Appunti

2017/2018

Caricato il 23/04/2018

elisa-boninella
elisa-boninella 🇮🇹

6 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Oggetti e classi
Tutti gli oggetti del mondo reale condividono due aspetti: uno stato ed un comportamento. Lo stato è
rappresentato dalle loro caratteristiche o proprietà, il comportamento dalle azioni od operazioni che
lo riguardano.
Gli oggetti in Java sono concettualmente simili agli oggetti del mondo reale: il loro stato è
rappresentato da caratteristiche (dette anche proprietà, attributi, variabili, campi o dati) e il loro
comportamento è rappresentato da metodi ( o funzioni).
Un programma scritto in Java è costituito da un insieme di classi (ed eventualmente di interfacce,)
I metodi rappresentano le operazioni sui dati (associati a dei tipi) e si riconoscono dalla presenza di
parentesi tonde dopo il loro nome. Vediamo innanzitutto due tipi particolari di metodi:
1. I costruttori sono metodi che hanno lo stesso nome della classe e vengono automaticamente
attivati ogni volta che si crea (istanzia) un oggetto (con l’istruzione new). Loro compito è
quello di creare fisicamente un oggetto, allocando memoria, e di inizializzarlo.
Ad esempio quando si crea un orologio in memoria come quello descritto in class Orologio,
vengono allocati 4 byte per ogni dato di tipo int, cioè 12 byte in totale (sempre facendo
riferimento ai processori a 32 bit).
2. I metodi di accesso get e set, generalmente specificati come public consentono l’accesso ai
dati dall’esterno della classe: i metodi get solo in lettura (non consentono modifiche ai dati),
i metodi set consentono di modificare i dati.
public int getOra() {
return ora; }
public int getMinuto() {
return minuto; }
public int getSecondo() {
return secondo; }
Questi metodi rendono accessibili, “inviandoli” verso l’esterno mediante return, rispettivamente ora,
minuto e secondo.
Ogni programma contiene un metodo particolare di nome main():
public static void main(String[] args)
Da questo metodo parte sempre l’esecuzione del programma stesso. Spesso al suo interno vengono
istanziati degli oggetti, vale a dire creati degli esempi (istanze) di classi descritte altrove (o nello
stesso file o in altri file).Il main() normalmente è all’interno di una classe public.
pf3

Anteprima parziale del testo

Scarica Classi ed oggetti in Java e più Appunti in PDF di Programmazione Java solo su Docsity!

Oggetti e classi

Tutti gli oggetti del mondo reale condividono due aspetti: uno stato ed un comportamento. Lo stato è rappresentato dalle loro caratteristiche o proprietà , il comportamento dalle azioni od operazioni che lo riguardano.

Gli oggetti in Java sono concettualmente simili agli oggetti del mondo reale: il loro stato è rappresentato da caratteristiche (dette anche proprietà, attributi, variabili, campi o dati ) e il loro comportamento è rappresentato da metodi ( o funzioni ).

Un programma scritto in Java è costituito da un insieme di classi (ed eventualmente di interfacce,)

I metodi rappresentano le operazioni sui dati (associati a dei tipi) e si riconoscono dalla presenza di parentesi tonde dopo il loro nome. Vediamo innanzitutto due tipi particolari di metodi:

1. I costruttori sono metodi che hanno lo stesso nome della classe e vengono automaticamente

attivati ogni volta che si crea (istanzia) un oggetto (con l’istruzione new). Loro compito è quello di creare fisicamente un oggetto, allocando memoria, e di inizializzarlo.

Ad esempio quando si crea un orologio in memoria come quello descritto in class Orologio, vengono allocati 4 byte per ogni dato di tipo int, cioè 12 byte in totale (sempre facendo riferimento ai processori a 32 bit).

2. I metodi di accesso get e set , generalmente specificati come public consentono l’accesso ai

dati dall’esterno della classe: i metodi get solo in lettura (non consentono modifiche ai dati), i metodi set consentono di modificare i dati.

public int getOra() {

return ora; }

public int getMinuto() {

return minuto; }

public int getSecondo() {

return secondo; }

Questi metodi rendono accessibili, “inviandoli” verso l’esterno mediante return, rispettivamente ora, minuto e secondo.

Ogni programma contiene un metodo particolare di nome main():

public static void main(String[] args)

Da questo metodo parte sempre l’esecuzione del programma stesso. Spesso al suo interno vengono istanziati degli oggetti, vale a dire creati degli esempi (istanze) di classi descritte altrove (o nello stesso file o in altri file).Il main() normalmente è all’interno di una classe public.

Ereditarietà

In Java una classe può ereditare da un’altra classe caratteristiche e metodi.

Una superclasse (o classe di base) può avere un numero illimitato di classi derivate o sottoclassi, ma una sottoclasse può ereditare da un’unica superclasse.

L’ereditarietà si usa SE E SOLO SE la classe derivata è del tipo della classe di base.

Una superclasse deve contenere tutti gli elementi ( dati e metodi) comuni alle sue classi derivate.

Una classe derivata eredita sia dati che metodi dalla sua superclasse. Non può però accedere direttamente ai dati private ereditati dalla superclasse. Nella classe derivata si usano a questo scopo metodi get e set public ereditati dalla classe di base.

L’insieme dei quadrati è un sottoinsieme dell’insieme dei rettangoli quindi la classe Quadrato è una sottoclasse della classe Rettangolo (Quadrato estende Rettangolo).

Quadrato eredita i metodi e i campi definiti nella classe Rettangolo (superclasse di Quadrato).

Grazie al meccanismo dell’ereditarietà, chi implementa la classe Quadrato dovrà limitarsi a indicare solo quanto la differenzia da Rettangolo (i metodi toString dovranno essere differenti).

Il riferimento ad un oggetto di una sottoclasse può essere sempre assegnato a una variabile il cui tipo sia una superclasse della classe alla quale appartiene l’oggetto (il nome della superclasse è un supertipo per il tipo della sottoclasse).

Polimorfismo : in momento diversi una stessa chiamata (es. r.toString()) può invocare metodi

differenti sulla base della classe cui appartiene l’oggetto al quale viene chiesto di eseguire il metodo.

Il metodo effettivamente eseguito è stabilito in esecuzione in base all’oggetto e NON al riferimento.

E’ possibile scrivere una condizione per controllare il tipo di un oggetto: instanceof.

r instanceof Rettangolo

r riferimento

Rettangolo tipo riferimento (nomi delle classi)

Se l’oggetto associato al riferimento indicato a sinistra è un’istanza della classe indicata a destra dell’operatore binario, il risultato dell’operatore è true.

In Java ogni classe è una classe derivata, in modo diretto o indiretto, dalla classe Object (classe predefinita). Infatti, ciascuna classe che non estende un'altra classe estende automaticamente la classe Object.

Non è possibile assegnare direttamente a una variabile che corrisponde a una sottoclasse un riferimento ad un oggetto di una superclasse ma è necessario effettuare un cast.

Es. Rettangolo r;