CodeGym
Promotion
Apprentissage
Cours
Exercices
Sondages & Quiz
Jeux
Aide
Planning
Communauté
Utilisateurs
Forum
Chat
Articles
Témoignages de réussite
Activité
Avis
Abonnements
Thème clair

Leçons

  • Avis
  • À propos de nous
Commencer
Commencer à apprendre
Commencez à apprendre maintenant
  • Mes progrès
  • Cours
  • Carte des quêtes
  • Leçons
  • Implémentation des abstractions et des hiérarchies

    JAVA 25 SELF
    Niveau 19,Leçon 2
    Guide pratique pour construire des hiérarchies de classes en Java : de l’abstraction aux détails. À travers des exemples de formes, d’un mini‑éditeur, de paiements et de transport, nous montrons comment extraire le commun dans une classe de base abstract, redéfinir des méthodes comme area()/ draw(), étendre le système sans réécrire du code et éviter la duplication. Nous terminerons par un panorama des erreurs typiques et des conseils de conception.
    Disponible
  • Exemples de construction d’abstractions dans des cas réels

    JAVA 25 SELF
    Niveau 19,Leçon 3
    Nous nous exerçons à appliquer des abstractions dans des scénarios réels : paiements, transport, éditeur graphique. Nous montrerons comment extraire le comportement commun dans une classe de base abstract, travailler via un contrat commun et remplacer le code « if- else » à embranchements par du polymorphisme. En chemin, nous verrons comment appeler de manière uniforme des méthodes comme process(), move(), draw()/ resize(), afin de rendre le code flexible et extensible.
    Disponible
  • Simplifier les systèmes complexes grâce aux abstractions

    JAVA 25 SELF
    Niveau 19,Leçon 4
    Comment décomposer des applications complexes en niveaux d’abstraction (UI, logique métier, accès aux données) afin que le code reste lisible et extensible. En pratique, nous construisons un mini gestionnaire de tâches avec les couches Task, TaskRepository, TaskService, nous montrons comment remplacer des implémentations et les bénéfices pour l’équipe. Nous passerons en revue les bonnes pratiques, les erreurs typiques et un exemple avec les services OrderService/ OrderRepository, ainsi que des méthodes telles que saveOrder() et findUserById().
    Disponible
  • Notion d’interface, syntaxe de déclaration

    JAVA 25 SELF
    Niveau 20,Leçon 0
    Dans cette leçon, vous apprendrez ce qu’est une interface en Java, comment la déclarer à l’aide du mot-clé interface, comment les classes réalisent le contrat via implements, et pourquoi les méthodes par défaut sont considérées comme public abstract. Nous verrons les différences entre une interface et une classe, des exemples issus du JDK ( Comparable, Runnable, Serializable), un schéma visuel et les erreurs typiques.
    Disponible
  • Différences entre interfaces et classes abstraites

    JAVA 25 SELF
    Niveau 20,Leçon 1
    Dans cette leçon, nous comparons les interfaces et les classes abstraites en Java : quand choisir l’une ou l’autre, en quoi elles diffèrent par leurs possibilités et leurs limitations, à quoi ressemblent leurs signatures ( abstract class et interface), ce que signifient des modificateurs comme public, abstract, static, et nous examinerons aussi des exemples issus du JDK, des cas pratiques et des erreurs typiques (héritage, implémentation, utilisation de implements/ extends).
    Disponible
  • Implémentation multiple d'interfaces

    JAVA 25 SELF
    Niveau 20,Leçon 2
    Dans cette leçon, nous expliquons comment une classe en Java peut implémenter plusieurs interfaces à la fois : la syntaxe avec le mot-clé implements, la combinaison de rôles (par exemple, Movable, Attackable, Serializable), les signatures de méthodes identiques, l'absence du « problème du diamant », ainsi que la manière de gérer les conflits de méthodes default. Des exemples pratiques et une analyse des erreurs courantes sont fournis.
    Disponible
  • Interfaces fonctionnelles : @FunctionalInterface

    JAVA 25 SELF
    Niveau 20,Leçon 3
    Dans ce cours, nous expliquons ce qu’est une interface fonctionnelle (exactement une méthode abstraite), comment et pourquoi la marquer avec l’annotation @FunctionalInterface, par quoi il est permis de compléter l’interface via des default- et static-méthodes, ainsi que comment appliquer ces interfaces en pratique (classes normales et classes anonymes). Des exemples avec Runnable, Comparator<T> et les interfaces de java.util.function sont complétés par un tableau et une analyse des erreurs typiques.
    Disponible
  • Interfaces dans l’architecture Java, patrons de conception

    JAVA 25 SELF
    Niveau 20,Leçon 4
    Comment les interfaces transforment le code en une architecture flexible : nous programmons contre des abstractions, injectons les dépendances via DI, remplaçons les implémentations dans les tests, ajoutons de nouveaux comportements sans modifier le noyau ( OCP). Nous expliquons comment les interfaces sont à la base des patrons Observer, Strategy, Command, et montrons la pratique sur des exemples ( UserRepository, NotificationSender, stratégies de paiement).
    Disponible
  • Introduction aux expressions lambda

    JAVA 25 SELF
    Niveau 21,Leçon 0
    Dans cette leçon, nous allons examiner les expressions lambda en Java : ce que c’est et à quoi elles servent, comment fonctionne la syntaxe et les abréviations, comment les lambdas sont liées aux interfaces fonctionnelles ( @FunctionalInterface), en quoi elles diffèrent des classes anonymes, et comment fonctionne la capture des variables ( final / effectively final). À l’aide d’exemples pratiques avec Runnable, Consumer, Comparator, Function et l’API Stream, nous verrons comment écrire plus court et plus clair. Nous terminerons par une section « Erreurs courantes » et des conseils pour les éviter.
    Disponible
  • Références de méthode (::) : liens vers des méthodes

    JAVA 25 SELF
    Niveau 21,Leçon 1
    Guide rapide sur les références de méthode en Java : où et comment utiliser une method reference à la place des lambdas. Nous examinerons 4 formes : Classe::méthode (statique et « sur une instance »), objet::méthode, Classe::new. Nous verrons la correspondance des signatures avec les interfaces fonctionnelles, comparerons avec les expressions lambda, regarderons des exemples pratiques avec forEach, sort, map et discuterons des erreurs typiques (incompatibilité des signatures, surcharge de méthodes, etc.).
    Disponible
  • Méthodes default dans les interfaces

    JAVA 25 SELF
    Niveau 21,Leçon 2
    Dans ce cours, nous expliquons pourquoi les default-méthodes sont apparues dans les interfaces en Java 8, comment elles permettent de faire évoluer une API sans casser l’ancien code, leur syntaxe (mot-clé default placé avant le type de retour) et leur comportement dans les implémentations. À l’aide d’exemples issus de la bibliothèque standard ( List : forEach, replaceAll, sort), nous verrons leur utilisation en pratique. Nous discuterons des limites : on ne peut pas redéfinir les méthodes de Object ( equals/ hashCode/ toString), ainsi que des règles de résolution des conflits en cas d’implémentations multiples et des erreurs typiques.
    Disponible
  • Méthodes statiques dans les interfaces

    JAVA 25 SELF
    Niveau 21,Leçon 3
    Nous expliquons comment et pourquoi les interfaces en Java ont obtenu des méthodes static : syntaxe de déclaration, différence avec les méthodes default, principales limitations (pas d’héritage, pas de redéfinition, appel uniquement via le nom de l’interface, accès uniquement aux membres static, prise en charge de private static à partir de Java 9+). En pratique, nous verrons Movable.resetPosition(), un Logger utilitaire, les fabriques de collections List.of()/ Set.of()/ Map.of() et l’utilitaire Comparator.reverseOrder(). Pour finir — erreurs typiques et comment les éviter.
    Disponible
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • ...
  • 30
Apprendre
  • Inscription
  • Cours Java
  • Aide pour les exercices
  • Tarifs
  • Syntaxe Java
Communauté
  • Utilisateurs
  • Articles
  • Forum
  • Chat
  • Témoignages de réussite
  • Activité
  • Programme d'affiliation
Entreprise
  • À propos de nous
  • Contacts
  • Avis
  • Espace presse
  • CodeGym pour l'éducation
  • FAQ
  • Support
CodeGymCodeGym est un cours en ligne pour apprendre la programmation Java depuis le début. Ce cours est un moyen idéal pour maîtriser Java pour les débutants. Il contient plus de 1200 exercices avec vérification instantanée et un ensemble essentiel de notions fondamentales de Java. Pour vous aider à réussir, nous avons mis en place des fonctionnalités motivantes : quiz, projets de codage, contenu sur l'apprentissage efficace, et une rubrique sur la carrière de développeur Java.
Suivez-nous
Langue de l'interface
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
"Les programmeurs se forment, ils ne naissent pas" © 2026 CodeGym
MastercardVisa
"Les programmeurs se forment, ils ne naissent pas" © 2026 CodeGym