








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
Java: ereditarietà, incapsulamento, polimorfismo, creazione di oggetti, costruttori, distruttori, getter e setter, la classe String.
Tipologia: Dispense
1 / 14
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!









Un programma OOP si basa sull’utilizzo di moduli software già preparati. L’elemento fondamentale nella OOP è l’ oggetto che è appunto un “insieme di dati e di funzioni” che prende “vita” da una classe. Nella programmazione OOP l’oggetto è dunque un’ istanza di una classe. Aspetti fondamentali classi e oggetti:
Il costruttore di default che appare nell’esempio è il costruttore che viene automaticamente creato quando si dichiara una classe e non contiene alcun codice. Oltre al costruttore di default nella classe si inseriscono altri costruttori che però hanno uno o più parametri in ingresso. OVERLOADING La possibilità offerta dai linguaggi a oggetti di consentire la coesistenza di più metodi con lo stesso nome prende il nome di overloading. Una classe può contenere più costruttori e metodi con con stesso nome purché distinti da intestazioni (signature) diverse, cioè:
La necessità di scrivere e richiamare direttamente il costruttore esiste solo nel caso di progetti articolati o complessi, mentre nelle classi semplici esiste un distruttore standard, che viene automaticamente chiamato dal sistema ogniqualvolta un oggetto viene deallocato in una delle tre seguenti situazioni:
Nei linguaggi imperativi le stringhe sono generalmente realizzate mediante un array di caratteri, in Java invece sono oggetti della classe String. La classe String mette a disposizione molteplici metodi per analizzare e manipolare le stringhe.
L’ereditarietà è uno dei principi basilari della OOP. L’ ereditarietà è un processo grazie al quale una classe acquisisce un bagaglio di proprietà da una classe più generica per ampliarla e specializzarla, in modo da permettere di descrivere una classificazione gerarchica di oggetti senza ridefinire ogni volta le singole caratteristiche comuni a ogni classe. Con il termine ereditarietà si indica un meccanismo per definire nuove classi in termini di classi esistenti già definite con un più alto livello di astrazione, dalle quali ereditare attributi e comportamenti. L’ereditarietà permette di raggruppare classi correlate in modo che possano essere:
La relazione IS-A è la relazione tra una classe (superclasse o classe base) e una o più versioni specializzate (sottoclassi). Prende il nome di regola di appartenenza o IS-A relationship. La verifica della relazione di appartenenza avviene ponendo due semplici domande in merito a un’oggetto per stabilire se esiste una relazione gerarchica:
Gli attributi privati della classe padre non sono accessibili dalla classe figlio; Gli attributi pubblici della classe padre sono accessibili dalla classe figlio ma in Java rimangono pubblici. Una classe figlio quindi ha accesso solo ai metodi e attributi della classe padre che non sono di tipo privato. Dichiarare un attributo protected nella superclasse equivale a:
Si definisce gerarchia di specializzazione il legame logico che esiste tra classi e sottoclassi. La regola pratica da seguire per la costruzione di un albero di eredità dice che se un oggetto A è anche un oggetto B, allora la classe A eredita dalla classe B. EREDITARIETA’ MULTIPLA Es. (animale che è contemporaneamente un mammifero terrestre e un rettile). Utilizzando l’ereditarietà multipla, è possibile che si verifichi il “ name clash ” cioè lo scontro tra metodi che hanno lo stesso nome. Per evitare problematiche dovute al name clash , Java realizza l’ereditarietà multipla non in modo diretto ma mediante il meccanismo delle interfacce , che gli permette inoltre di effettuare un miglior controllo nella gerarchia delle classi.