Archivi mensili: Giugno 2023

LE INTERFACE IN JAVA PRIMA PARTE

LE INTERFACE IN JAVA INTRODUZIONE Introduciamo le interface nell’ambito della programmazione OOP. All’inizio del corso, uno degli aspetti su cui ci siamo soffermati è quello dell’interfaccia pubblica. Uno dei principi basilari con cui dobbiamo progettare le nostre classi è quello dell’incapsulamento. In particolare, si devono rendere gli attributi privati, così come i metodi usati solo dalla classe ed esporre all’esterno le funzionalità minime per chi utilizzerà la nostra classe. CLASSI ASTRATTE Spesso si possono individuare una serie di responsabilità, definite in modo generale, ad esempio, con una classe astratta, e implementate concretamente all’interno di una  serie [...]

Di |2023-06-02T19:51:01+00:00Giugno 2, 2023|0 Commenti

LE INTERFACE IN JAVA SECONDA PARTE

LE INTERFACE IN JAVA IMPLEMENTAZIONE MULTIPLA DELLE INTERFACE In questa seconda parte un pò più corposa del solito termineremo il discorso interface analizzando gli aspetti mancanti. Vediamo con un esempio un po' più articolato i vantaggi nell’uso delle interface. Introduciamo due interfacce. Dichiariamo la classe AClass che implementa entrambe le interface. Scriviamo una seconda classe BClass che però implementa solo la seconda interface. Andiamo a riepilogare con una figura quanto scritto finora. Creiamo la classe di test. [...]

Di |2023-06-03T20:43:27+00:00Giugno 3, 2023|0 Commenti

SEALED CLASS E SEALED INTERFACE IN JAVA

LE SEALED CLASS E LE SEALED INTERFACE IN JAVA Tanto per cominciare diciamo che la parola sealed vuol dire sigillato; quindi, una sealed class è una classe sigillata. Questo ci porta all’importante domanda che cos’è una classe sigillata? Facciamo un passo indietro. Siamo nella condizione in cui una classe può essere completamente ereditata, oppure se dichiarata come final non può in alcun modo essere ereditata. Le sealed class si pongono tra questi due estremi ponendoci soluzioni alternative. Vediamo la definizione. Con la parola chiave sealed la classe diventa sigillata tuttavia la [...]

Di |2023-06-05T19:07:22+00:00Giugno 5, 2023|0 Commenti

LE ENUMERAZIONI IN JAVA

LE ENUMERAZIONI IN JAVA INTRODUZIONE ALLE ENUMERATION Iniziamo osservando questo esempio. Una enumerazione viene dichiarata e creata attraverso la parola chiave enum. Poi andiamo ad inserire il nome che vogliamo dare alla nostra enum, come se fosse una classe. Una enumerazione in Java è un Data Type vero e proprio, se vogliamo essere trasparenti dobbiamo dire che rappresenta una classe un po' speciale. All’interno del body definiamo un insieme di costanti. Gli elementi di una enumerazione vengono detti costanti enumerative, ed infatti sono considerati in modo implicito come elementi public e final. Vediamo il programma di [...]

Di |2023-06-07T19:23:25+00:00Giugno 7, 2023|0 Commenti

LE ECCEZIONI IN JAVA PRIMA PARTE

LE ECCEZIONI IN JAVA INTRODUZIONE Un’eccezione è una condizione di errore che non viene rilevata a runtime, cioè durante l’esecuzione del programma. Un errore di questo tipo impedisce il corretto avanzamento del programma e richiede di essere gestito. Se l’eccezione non viene gestita il programma si interrompe. Introduciamo le classi base dalla quale tutte le eccezioni derivano. In Java tutte le eccezioni sono rappresentate da classi. Vediamo la figura. Throwable che deriva da Object, significa sollevare, è la classe base di tutte le eccezioni. La differenza tra le due sottoclassi Exception ed Error è che Exception [...]

Di |2023-06-10T21:39:45+00:00Giugno 10, 2023|0 Commenti

LE ECCEZIONI IN JAVA SECONDA PARTE

LE ECCEZIONI IN JAVA UTILIZZARE LA KEYWORD THROWS Se noi non gestiamo un determinato gruppo di eccezioni nel codice, può succedere che il programma termini con un messaggio di errore. Se un metodo può potenzialmente generare eccezioni, chi usa quel metodo deve saperlo in modo da prendere le proprie contromisure. Vediamo come si dichiara un metodo con la parola chiave throws. exc-list sono le classi di eccezione che il metodo non è in grado o non vuole gestire. Le classi escluse da questo meccanismo sono quelle la cui superclasse è Error e RuntimeException. [...]

Di |2023-06-12T21:25:27+00:00Giugno 12, 2023|0 Commenti

TYPE WRAPPERS E AUTOBOXING

TYPE WRAPPERS Vedremo come i tipi primitivi di Java possono essere convertiti e considerati degli oggetti. Ci sono varie ragioni per dover effettuare questa conversione e una di queste è rappresentata dai Generics. Un Type Wrapper è un involucro che noi andiamo a costruire attorno a un tipo primitivo. Per essere più precisi è una classe che incapsula il tipo primitivo. Tra le classi di maggiore importanza possiamo indicare i tipi numerici. Le classi sono sottoclassi di Number. Tutte le classi Wrapper numeriche possiedono un particolare metodo statico che prende come [...]

Di |2023-06-14T17:42:42+00:00Giugno 14, 2023|0 Commenti

I GENERICS IN JAVA PRIMA PARTE

I GENERICS IN JAVA INTRODUZIONE AI GENERICS I Generics sono classi, interface e metodi parametrici, detta così non è che sia subito immediata la comprensione. Lo sarà tra un po' quando vedremo la prima classe generica. Classi, interface e metodi operano su tipo di dati parametrici, specificati convenzionalmente attraverso una lettera T, o altre che fanno da segnaposto a un Data Type qualunque di tipo Reference Type. Attraverso i Generics siamo in grado di progettare programmi molto più flessibili, partiamo subito con il codice. UNA CLASSE GENERICA PARTE 1 Osserva questa classe. [...]

Di |2023-06-16T14:09:28+00:00Giugno 16, 2023|0 Commenti

I GENERICS IN JAVA SECONDA PARTE

I GENERICS IN JAVA BOUNDED TYPES Per capire come si implementano i Bounded Types partiamo subito con un esempio. L’attributo t in figura è di tipo Object, come abbiamo visto nelle lezioni precedenti per trasformarlo in un Type Wrapper occorre usare il metodo intValue(). Se proviamo a compilare questa classe otteniamo un errore. Non viene riconosciuto dal compilatore perché intValue() è un metodo della classe Number e noi stiamo lavorando con un tipo Object che sta ad un livello più alto, inoltre il metodo quadrato non è un vero metodo generico. Pensa [...]

Di |2023-06-17T18:21:41+00:00Giugno 17, 2023|0 Commenti

LE LAMBDA EXPRESSIONS IN JAVA

LE LAMBDA EXPRESSIONS IN JAVA INTRODUZIONE Una Lambda Expression la possiamo definire in prima approssimazione come un metodo anonimo. Questo ci dice subito due cose. La prima è che una espressione lambda è un metodo, la seconda è che il metodo non ha nome. Per essere più precisi dobbiamo dire però che una espressione lambda è una classe anonima che implementa una particolare tipo di interface chiamata Functional Interface. LE FUNCTIONAL INTERFACE Sono le fondamenta su cui si basano le Lambda Expression. Una Functional Interface contiene un solo metodo astratto. Andiamo a vedere un esempio. Avremmo [...]

Di |2023-06-18T19:03:24+00:00Giugno 18, 2023|0 Commenti
Torna in cima