CodeGym
Promozione
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Implementazione di astrazioni e gerarchie

    JAVA 25 SELF
    Livello 19,Lezione 2
    Guida pratica alla costruzione di gerarchie di classi in Java: dall’astrazione ai dettagli. Con esempi di figure, mini‑editor, pagamenti e trasporti, mostriamo come estrarre il comune in una classe abstract di base, come sovrascrivere metodi come area()/ draw(), come estendere il sistema senza riscrivere codice ed evitare duplicazioni. Concludiamo con una panoramica degli errori tipici e consigli di progettazione.
    Disponibile
  • Esempi di costruzione di astrazioni in casi reali

    JAVA 25 SELF
    Livello 19,Lezione 3
    Ci esercitiamo ad applicare le astrazioni in scenari reali: pagamenti, trasporti, editor grafico. Mostreremo come estrarre il comportamento comune in una classe base abstract, lavorare tramite un contratto comune e sostituire il codice pieno di if- else con il polimorfismo. Lungo il percorso vedremo come invocare in modo uniforme metodi come process(), move(), draw()/ resize(), in modo che il codice sia flessibile ed estendibile.
    Disponibile
  • Semplificare sistemi complessi tramite astrazioni

    JAVA 25 SELF
    Livello 19,Lezione 4
    Come scomporre applicazioni complesse in livelli di astrazione (UI, logica di business, accesso ai dati) affinché il codice rimanga comprensibile ed estendibile. In pratica costruiamo un mini task‑manager con i layer Task, TaskRepository, TaskService, mostriamo la sostituzione delle implementazioni e i vantaggi per il team. Analizziamo le best practice, gli errori tipici e un esempio con i servizi OrderService/ OrderRepository, nonché metodi come saveOrder() e findUserById().
    Disponibile
  • Concetto di interfaccia, sintassi di dichiarazione

    JAVA 25 SELF
    Livello 20,Lezione 0
    In questa lezione scoprirai che cos’è un’interfaccia in Java, come dichiararla con la parola chiave interface, come le classi realizzano il contratto tramite implements e perché i metodi, per impostazione predefinita, sono considerati public abstract. Analizzeremo le differenze tra interfaccia e classe, esempi dal JDK ( Comparable, Runnable, Serializable), uno schema visivo ed errori tipici.
    Disponibile
  • Differenza tra interfacce e classi astratte

    JAVA 25 SELF
    Livello 20,Lezione 1
    In questa lezione confronteremo interfacce e classi astratte in Java: quando scegliere cosa, in cosa differiscono per funzionalità e limitazioni, come appaiono le loro dichiarazioni ( abstract class e interface), cosa significano modificatori come public, abstract, static, e vedremo anche esempi dalla JDK, casi pratici ed errori tipici (ereditarietà, implementazione, uso di implements/ extends).
    Disponibile
  • Implementazione multipla delle interfacce

    JAVA 25 SELF
    Livello 20,Lezione 2
    In questa lezione vediamo come una classe in Java può implementare più interfacce: la sintassi con la parola chiave implements, la combinazione di ruoli (ad esempio, Movable, Attackable, Serializable), firme di metodo coincidenti, assenza del «diamante della morte», e anche cosa fare in caso di conflitti tra metodi default. Sono forniti esempi pratici e un’analisi degli errori tipici.
    Disponibile
  • Interfacce funzionali: @FunctionalInterface

    JAVA 25 SELF
    Livello 20,Lezione 3
    In questa lezione spieghiamo che cos'è un'interfaccia funzionale (esattamente un solo metodo astratto), come e perché annotarla con @FunctionalInterface, con che cosa è consentito arricchire l'interfaccia tramite default- e static-metodi, e anche come usare tali interfacce nella pratica (classi normali e classi anonime). Esempi con Runnable, Comparator<T> e le interfacce di java.util.function sono accompagnati da una tabella e dall'analisi degli errori più comuni.
    Disponibile
  • Interfacce nell’architettura Java, pattern di progettazione

    JAVA 25 SELF
    Livello 20,Lezione 4
    Come le interfacce trasformano il codice in un’architettura flessibile: programmiamo contro le astrazioni, iniettiamo dipendenze tramite DI, sostituiamo le implementazioni nei test, aggiungiamo nuovi comportamenti senza modificare il core ( OCP). Analizziamo come le interfacce siano alla base dei pattern Observer, Strategy, Command e mostriamo la pratica con esempi ( UserRepository, NotificationSender, strategie di pagamento).
    Disponibile
  • Introduzione alle espressioni lambda

    JAVA 25 SELF
    Livello 21,Lezione 0
    In questa lezione analizzeremo le espressioni lambda in Java: che cosa sono e a cosa servono, come funziona la sintassi e le scorciatoie, come le lambda sono collegate alle interfacce funzionali ( @FunctionalInterface), in cosa differiscono dalle classi anonime e come funziona la cattura delle variabili ( final / effectively final). Con esempi pratici con Runnable, Consumer, Comparator, Function e Stream API vedremo come scrivere in modo più breve e più chiaro. Concluderemo con la sezione “Errori tipici” e consigli su come evitarli.
    Disponibile
  • Method references (::): riferimenti ai metodi

    JAVA 25 SELF
    Livello 21,Lezione 1
    Guida rapida ai riferimenti ai metodi in Java: dove e come usare il method reference al posto delle lambda. Vedremo 4 forme: Classe::metodo (statica e “su istanza”), oggetto::metodo, Classe::new. Capiremo la corrispondenza delle firme con le interfacce funzionali, li confronteremo con le espressioni lambda, vedremo esempi pratici con forEach, sort, map e parleremo degli errori tipici (mancata corrispondenza delle firme, overload dei metodi, ecc.).
    Disponibile
  • Metodi di default nelle interfacce

    JAVA 25 SELF
    Livello 21,Lezione 2
    In questa lezione analizziamo perché in Java 8 sono apparsi i metodi default nelle interfacce, come permettono di evolvere gli API senza rompere il codice esistente, la loro sintassi (parola chiave default prima del tipo di ritorno) e il comportamento nelle implementazioni. Con esempi dalla libreria standard ( List: forEach, replaceAll, sort) vedremo la pratica d’uso. Discuteremo le limitazioni: non si possono sovrascrivere i metodi di Object ( equals/ hashCode/ toString), le regole di risoluzione dei conflitti con implementazioni multiple e gli errori tipici.
    Disponibile
  • Metodi statici nelle interfacce

    JAVA 25 SELF
    Livello 21,Lezione 3
    Analizziamo come e perché le interfacce in Java hanno ottenuto i static-metodi: sintassi di dichiarazione, differenza rispetto ai metodi default, vincoli chiave (non vengono ereditati, non sono sovrascrivibili, chiamata solo tramite il nome dell’interfaccia, accesso solo ai membri static, supporto di private static da Java 9+). Nella pratica vedremo Movable.resetPosition(), un Logger di supporto, le factory delle collezioni List.of()/ Set.of()/ Map.of() e l’utility Comparator.reverseOrder(). Alla fine — gli errori tipici e come evitarli.
    Disponibile
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • ...
  • 30
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Game Projects
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym