

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Appunti schematici sulle classi e gli oggetti nel linguaggio di programmazione Java
Tipologia: Appunti
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


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:
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).
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).
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;