Java - Les fondamentaux de la programmation
Java est le langage de référence des systèmes d'information d'entreprise. Cette formation vous apprend les bases de la programmation orientée objet, la syntaxe Java moderne et la gestion des fichiers.
Objectif de la formation
Immersion · Savoir faire en situation réelle
Expérimenter, éprouver et mettre en pratique les notions des journées ESSENTIEL à travers des cas métier fil rouge, des ateliers pratiques et des retours entre participants, pour gagner en autonomie (70 % de pratique et 30 % de théorie).
Choisissez votre format
Jusqu’où voulez-vous aller ?
Chaque format reprend le précédent et y ajoute des journées.
Programme détaillé
ACTION · 42 heures (6 jours)
Jour 1
MatinIntroduction à l'écosystème Java & Syntaxe de base
Objectif : Comprendre le principe de portabilité de Java (compilation, JVM), configurer son environnement de travail et écrire sa première application.
- L'architecture Java : JDK, JRE, JVM et cycle de vie d'un fichier source (.java -> .class).
- La méthode d'entrée principale : public static void main(String[] args).
- La syntaxe de base : déclaration de variables, types primitifs (int, double, boolean, char) et constantes.
Atelier pratique : Initialisation d'un projet console sous IntelliJ IDEA et écriture d'un programme d'échange et d'affichage d'informations utilisateur.
Cas métier : Initialisation du programme console de saisie et d'affichage des données d'un profil utilisateur applicatif avec contrôle des types de variables.
Compétence acquise : Être capable de compiler et d'exécuter de manière autonome un programme Java simple.
Livrable : Premier programme fonctionnel compilé et exécuté en invite de commande.
Après-midiStructures décisionnelles et itératives
Objectif : Rendre les programmes dynamiques et intelligents en implémentant des structures logiques et de répétition.
- Les opérateurs logiques et de comparaison.
- Les structures de contrôle conditionnelles : if, else if, else et le sélecteur multiple switch.
- Les structures de boucles : while, do-while et for.
Atelier pratique : Création d'un moteur de calcul de facturation de services selon des paliers de consommation tarifaires.
Cas métier : Développement d'un moteur de calcul de facturation de services automatisé selon des paliers de consommation tarifaires (if/switch/for).
Compétence acquise : Savoir automatiser et aiguiller un traitement logique en fonction des entrées de données.
Livrable : Console d'évaluation de tarifs automatisée et robuste.
Jour 2
MatinManipuler les Tableaux et les Chaînes de caractères
Objectif : Savoir stocker et manipuler des ensembles de données de taille fixe et maîtriser les API de traitement de texte.
- Déclaration, allocation et initialisation des tableaux à une ou plusieurs dimensions.
- Le parcours de tableaux à l'aide de la boucle enrichie for-each.
- La manipulation des objets String et la notion d'immutabilité.
Atelier pratique : Écriture d'un programme de tri et de recherche de valeurs dans un jeu d'indicateurs de performance.
Cas métier : Écriture d'un algorithme de tri et d'analyse statistique appliqué à un tableau d'indicateurs de performance financière.
Compétence acquise : Être capable de manipuler et d'analyser des ensembles ordonnés de données élémentaires.
Livrable : Algorithme de tri et de traitement statistique appliqué à un tableau numérique.
Après-midiIntroduction à la Programmation Orientée Objet (POO)
Objectif : Comprendre le paradigme de l'objet, définir des classes et instancier ses premiers objets métiers.
- Le concept d'objet : de la structure de données à l'entité active.
- Définition de classes : attributs de structure, méthodes d'action et rôles des constructeurs.
- La gestion de la durée de vie des objets : l'allocation mémoire via le mot-clé new.
Atelier pratique : Modélisation et création d'une entité « CompteBancaire » avec ses méthodes de dépôt et de retrait d'argent.
Cas métier : Modélisation de l'entité métier CompteBancaire avec gestion de l'état mémoire, constructeurs et méthodes d'opérations financières (dépôt/retrait).
Compétence acquise : Savoir conceptualiser un problème réel sous forme de classe réutilisable et instanciable en Java.
Livrable : Classe métier opérationnelle intégrant ses propres règles d'auto-contrôle élémentaires.
Jour 3
MatinEncapsulation et Relations entre Objets
Objectif : Sécuriser l'accès aux données internes d'une classe en mettant en place les concepts d'encapsulation.
- Les modificateurs d'accès et de visibilité : private, protected, public.
- La mise en œuvre des méthodes d'accès sécurisé : les accesseurs (getters) et mutateurs (setters).
- Les relations d'association et d'agrégation entre plusieurs objets du modèle de domaine.
Atelier pratique : Développement du module de gestion de comptes : création d'un objet « Client » lié à plusieurs objets « CompteBancaire » sécurisés.
Cas métier : Structuration du module de gestion de comptes sécurisant les attributs privés et associant un objet Client à son portefeuille de comptes bancaires.
Compétence acquise : Savoir protéger l'intégrité des états internes d'un objet informatique complexe.
Livrable : Paquetage de classes sécurisé par l'encapsulation et relié de manière logique.
Après-midiHéritage et Polymorphisme
Objectif : Factoriser le code et concevoir des hiérarchies d'objets évolutives en exploitant le mécanisme de l'héritage.
- Le concept d'héritage en Java via le mot-clé extends.
- Le mécanisme de redéfinition de méthodes (Override) et d'appel au parent via super.
- La notion de polymorphisme : manipuler des objets spécialisés à travers une référence parente générique.
Atelier pratique : Modélisation de différents types de comptes (Courant, Épargne) héritant tous d'un tronc commun, avec application d'intérêts ou d'agios différenciés de manière polymorphique.
Cas métier : Création d'une hiérarchie de comptes (CompteCourant, CompteEpargne) héritant d'un socle commun avec calcul polymorphique des agios et des intérêts.
Compétence acquise : Savoir factoriser du code applicatif et exploiter le polymorphisme pour simplifier l'architecture logicielle.
Livrable : Arborescence de classes spécialisées, extensibles et pilotées dynamiquement.
Jour 4
MatinAbstraction et Interfaces
Objectif : Définir des contrats d'intégration stricts et découpler l'architecture applicative grâce aux classes abstraites et aux interfaces.
- Le rôle et la syntaxe des classes et méthodes abstraites (abstract).
- La notion d'interface en tant que contrat comportemental (interface et implements).
- L'intérêt du couplage faible pour rendre le système évolutif et tolérant au changement.
Atelier pratique : Déclaration d'une interface de notification d'alertes (SMS, Email) et intégration de celle-ci dans nos modules financiers sans dépendance directe avec les classes concrètes.
Cas métier : Définition d'une interface de notification d'alertes (SMS, Email) et intégration découplée au sein des modules financiers.
Compétence acquise : Savoir formaliser des contrats de comportement logiciels pour séparer l'utilisation d'un service de son implémentation technique.
Livrable : Système modulaire découplé, architecturé autour de contrats d'interfaces stricts.
Après-midiGestion des Exceptions et Robustesse du Code
Objectif : Anticiper, capturer et gérer les dysfonctionnements et les erreurs pour rendre l'application robuste face aux imprévus.
- La hiérarchie des exceptions en Java : exceptions surveillées (checked) et non surveillées (unchecked).
- La capture d'erreurs : mise en place des blocs try, catch et le rôle libérateur du bloc finally.
- La propagation des exceptions via le mot-clé throws et la levée volontaire d'erreurs avec throw.
Atelier pratique : Sécurisation du simulateur bancaire : rejet des transactions négatives, détection des dépassements de découverts autorisés et levée d'exceptions personnalisées.
Cas métier : Sécurisation du simulateur bancaire avec rejet des opérations invalides et levée d'exceptions personnalisées en cas de dépassement de découvert.
Compétence acquise : Savoir rendre une application stable et capable de réagir de manière sécurisée en cas d'erreur de saisie ou d'incident d'exécution.
Livrable : Code de traitement applicatif hautement protégé et insensible aux pannes logiques.
Jour 5
MatinL'API de Collections de Java
Objectif : Manipuler des structures de données dynamiques complexes de manière performante en exploitant le framework de collections standard.
- Les limites des tableaux classiques et l'apport des structures extensibles dynamiquement.
- L'utilisation de la liste ordonnée ArrayList et les différences avec d'autres types d'organisations de données.
- La gestion de dictionnaires clés/valeurs à l'aide de la structure HashMap.
Atelier pratique : Restructuration de notre portefeuille de comptes d'un client à l'aide d'une collection dynamique indexée par numéro de compte.
Cas métier : Indexation et recherche rapide du portefeuille de comptes d'entreprise à l'aide d'une collection dynamique HashMap indexée par identifiant unique.
Compétence acquise : Savoir structurer et interroger efficacement un volume variable de données métiers en mémoire active.
Livrable : Module de traitement d'annuaire et d'indexation dynamique d'objets.
Après-midiFlux d'entrées/sorties et initiation à la persistance
Objectif : Rendre les données de l'application durables en apprenant à écrire et lire des données à partir de fichiers physiques sur disque.
- La gestion des fichiers et des répertoires à l'aide des bibliothèques de traitement d'entrées/sorties (java.nio.file).
- La lecture et l'écriture de flux de texte ligne par ligne (BufferedReader, BufferedWriter).
- La bonne fermeture des ressources physiques en utilisant l'instruction moderne try-with-resources.
Atelier pratique : Établissement d'un module de sauvegarde de rapports d'activité : enregistrement et rechargement de l'état financier global depuis un fichier texte d'historisation.
Cas métier : Établissement d'un module d'historisation enregistrant et rechargeant l'état financier global depuis un fichier texte d'archive (java.nio.file).
Compétence acquise : Être capable de sauvegarder et de récupérer proprement l'état d'une application sur un support de stockage persistant.
Livrable : Module de gestion de persistance de données autonome et opérationnel.
Jour 6ACTION
MatinDe la POO à l'action : concevoir le modèle objet d'une application bancaire
Objectif : Réutiliser en autonomie les classes, l'encapsulation, l'héritage, les interfaces et les collections des journées ESSENTIEL pour concevoir une application.
- Réactiver les acquis des journées ESSENTIEL : rappel visuel et quiz sur les classes et objets, l'encapsulation, l'héritage, le polymorphisme, les interfaces et les collections.
- Concevoir un modèle de classes clair, puis le coder et le faire fonctionner avec les collections adaptées.
Atelier pratique : Entraînement en binômes : relire le modèle de classes d'un autre binôme et repérer les attributs exposés et les responsabilités mal réparties, avec correction croisée.
Cas métier : La gestion des comptes bancaires (cas fil rouge) - Les participants conçoivent les classes de l'application (clients, comptes, opérations), utilisent l'héritage et les interfaces pour les différents types de comptes et gèrent les opérations avec les collections, puis présentent leur conception au groupe.
Compétence acquise : Savoir concevoir et coder en autonomie une application orientée objet bien structurée.
Livrable : Le projet Java de gestion bancaire, construit avec les modèles des journées ESSENTIEL.
Après-midiÉprouver la robustesse de son code en simulation de mise en service
Objectif : Mettre à l'épreuve la gestion des exceptions et la sauvegarde des données de son application face à des situations imprévues.
- Retour sur les exceptions, les flux d'entrée et de sortie et la persistance vus les jours précédents.
- Rendre l'application fiable : opérations invalides refusées, erreurs gérées et données sauvegardées.
Atelier pratique : Exercice guidé : échanger les applications, chercher à les faire échouer (montant négatif, fichier absent, saisie invalide), puis corriger les failles.
Cas métier : La mise en service de l'application (cas fil rouge) - Chaque participant sécurise son application avec des exceptions adaptées, sauvegarde et recharge les données dans des fichiers, puis la soumet à une revue de code du groupe et du formateur.
Compétence acquise : Savoir livrer une application Java robuste et capable de conserver ses données.
Livrable : L'application finalisée et sécurisée, issue des modèles des journées ESSENTIEL.
Les ateliers et cas métier de ce programme pourront être adaptés par le consultant-formateur selon les besoins, le niveau et les prérequis des participants, pour favoriser l’atteinte des objectifs pédagogiques.
Cette formation dans le parcours
Vous êtes ici
Pour aller plus loin
Indicateurs de résultats
Indicateurs publiés à partir de 3 avis.
