Java - Les fondamentaux de la programmation Java SE

Référence : 19003-161015-1-JAV

Dans cette formation, vous apprendrez la syntaxe du langage Java ainsi que la mise en œuvre de tous les concepts de la programmation orientée objet. Vous apprendrez également à utiliser les principales classes du JDK Java SE et à utiliser IDE Eclipse pour le développement et la mise au point de vos applications.

Infos pratiques

  • Durée : 5 jours soit 35 heures
  • Population visée : Ouvrier – Employé – Employé qualifié – Cadre – Cadre supérieur
  • Public concerné : Développeurs, analystes programmeurs, chefs de projets.

Programme

Objectifs pédagogiques

A l’issue de cette formation, l’apprenant sera capable de :

  • Utiliser l'IDE Eclipse pour vos projets Java ;
  • Ecrire, compiler, exécuter et déboguer des programmes Java ;
  • Appliquer les concepts de programmation orientée objet au langage Java ;
  • Utiliser la bibliothèque de classes Java ;
  • Gérer les erreurs et mettre en œuvre la journalisation de vos applications ;
  • Réaliser des tests unitaires à l'aide de JUnit.

Pré-requis

  • Avoir une expérience de programmation, quel que soit le langage d'origine ;
  • Avoir développé et livré une application en autonomie ou en équipe ;
  • Idéalement, avoir suivi la formation "La conception orientée objet" ou posséder les connaissances et compétences équivalentes.

Objectifs opérationnels et contenu de la formation

Introduction

  • Historique de Java
  • Java et le Web
  • Les Applets Java et les sites Web
  • Principes et caractéristiques de Java
  • L'indépendance par rapport à la plateforme
  • Un langage orienté objet, sûr, robuste et performant
  • Le développement Java
  • Cycle de conception d'une application Java
  • Les outils de développement du JDK (compilateur, interpréteur, débogueur)
  • La machine virtuelle Java
  • Structure d'un programme Java

Utilisation de l'IDE Eclipse

  • Présentation de la structure d'Eclipse
  • Les différentes fenêtres et leur utilité en phase de développement
  • Programmer avec Eclipse
  • Création et configuration des projets
  • Utilisation des assistants de création
  • Compiler et exécuter un programme
  • Utiliser le débogueur pour la mise au point des programmes

Les principes de base du langage

  • Les règles syntaxiques
  • Les instructions et les blocs
  • Les identificateurs
  • Utilisation des commentaires Javadoc pour la génération de la documentation
  • Les constantes littérales
  • Les expressions littérales binaires
  • Le formatage des expressions numériques
  • Les opérateurs et expressions
  • Les variables et les constantes
  • Les importations de classes et packages
  • Les importations statiques de constantes
  • Les types de données primitifs et les types wrappers
  • Entiers,réels, caractère et booléen
  • Autoboxing des types primitifs
  • Les chaînes de caractères et la classe String
  • Les principales méthodes de manipulation de chaînes de caractères
  • L'opérateur de concaténation et la classe StringBuffer
  • Création et utilisation de types de données énumérés : enum
  • La gestion des dates et du temps
  • L'API historique et les classes java.util.Date et java.util.Calendar
  • L'API Date (nouveauté Java SE 8)
  • Gestion des différences entre les dates
  • Méthodes de conversions de formats entre la nouvelle API et l'ancienne et vice-versa
  • Les tableaux
  • Création et manipulation de tableaux à une ou plusieurs dimensions
  • Utilisation des méthodes utilitaires de la classe Arrays
  • Les collections
  • Inconvénients des tableaux et avantages apportés par l'utilisation des collections
  • Les différents types de collections : les Set, les List, les Map
  • Création et manipulation de Vector et de Hashtable
  • Utilisation des méthodes utilitaires de la classe Collections
  • Les collections génériques
  • Le meilleur des tableaux et des collections
  • Utilisation des génériques pour typer les collections
  • Simplification de l'utilisation des Generics avec le " Diamond operator "
  • Manipulation des collections avec les Streams (nouveauté Java SE 8)
  • Conversion de types de données primitifs
  • Les structures de contrôle
  • Conditionnelles (if, switch)
  • Itératives (for, for each, while, do)
  • L'utilisation de switch avec le type String
  • Les mots clés break, continue et return
  • Affichage sur la sortie standard avec System.out.println()
  • Affichage formaté sur la sortie standard avec la méthode printf()
  • Travaux pratiques : Calcul du jour de Noël en fonction d'une année

La programmation orientée objet en Java

  • Les principes de la programmation orientée objet
  • Modélisation et conception objet
  • Les concepts de programmation objet appliqués à Java
  • Les classes, les objets, les attributs et les méthodes
  • L'encapsulation
  • L'héritage
  • L'abstraction
  • Le polymorphisme
  • Relation entre les classes et les objets

Création et manipulation de classes et d'objets

  • Déclaration d'une classe
  • Création d'objets avec l'opérateur new et notion de référence
  • Déclaration des constructeurs et règles de mise en œuvre
  • Finalisation d'objet et le garbage collector
  • Déclaration et manipulation de membres (variables et méthodes) de classes (static) et d'instances
  • Les méthodes et le passage de paramètres par valeur ou référence
  • Bonnes pratiques pour la mise en œuvre des accesseurs
  • Mise en œuvre de l'héritage simple en Java
  • Le cas particulier des classes finales et méthodes finales
  • Impacte sur l'héritage
  • Cas d'utilisation des classes finales
  • Le cas particulier les classes abstraites
  • Impacte sur l'héritage
  • Cas d'utilisation des classes abstraites
  • Effectuer des conversions d'objets
  • Les modificateurs d'accès et l'accès aux membres des classes
  • Mise en œuvre de la surcharge de méthodes
  • Simplification de la surcharge de méthodes par la réalisation de méthodes à arguments variables
  • Mise en œuvre de la redéfinition de méthodes
  • La classe Object et ses méthodes utilitaires
  • Cloner les objets avec la méthode clone() et l'interface Cloneable
  • Comparaison d'objet avec la méthode equals()
  • Obtenir une représentation d'un objet sous forme de chaîne de caractères avec la méthode toString()
  • La réflexion objet avec la méthode getClass()
  • Utilisation des mots clés this, this() et super, super() et patterns de mises en œuvres
  • Tester le type d'un objet avec l'opérateur instanceof et pattern de mise en œuvre
  • Travaux pratiques : Réalisation progressive d'une application de gestion de comptes bancaires avec conception des classes : Compte, CompteEpargne, Client, Banque

Concepts avancés de programmation Java

  • Les classes abstraites et les interfaces
  • Points communs et divergences
  • Utilisation des interfaces Cloneable pour cloner des objets et Comparable pour trier des tableaux/collections d'objets
  • Création et utilisation de classes abstraites et d'interfaces et mise en œuvre du polymorphisme
  • Cas particulier des interfaces fonctionnelles (nouveauté Java SE 8)
  • Les interfaces de java.util.function
  • Les expressions Lambdas (nouveauté Java 8)
  • Principes et syntaxe
  • Application aux interfaces fonctionnelles de l'API standard
  • Création et utilisation de ses propres packages
  • Convention et règle de nommage
  • Principe de fonctionnement et traitement des erreurs avec les exceptions
  • Les classes Throwable, Error et Exception
  • Les méthodes communes issues de la classe Throwable : getMessage(), getCause(), …
  • Intercepter et gérer les exceptions avec les instructions try, catch, finally
  • Déclarer des méthodes comme étant susceptibles de lever les exceptions avec l'instruction throws
  • Déclencher des exceptions avec l'instruction throw
  • Le chaînage d'exceptions : bonnes pratiques et cas d'utilisations
  • Créer ses propres classes d'exception
  • Gestion automatique de la fermeture des ressources avec try with-ressource
  • Multicatch et simplification de la gestion des exceptions
  • La méta-programmation par annotations
  • Déclaration, utilisation et syntaxe des annotations
  • Annotations standards : @Deprecated, @Overrides, @SuppressWarning, …
  • Les classes internes et anonymes
  • Cas d'utilisations et bonnes pratiques de mise en œuvre
  • Travaux pratiques :
  • Compléter la classe Banque avec des méthodes de recherche de compte en utilisant les streams et les expressions lambdas
  • Mise en œuvre de la gestion des erreurs dans la classe Compte et la classe Banque
  • Trier les comptes en banque selon différents critères

Les librairies de journalisation Java

  • L'intérêt de la journalisation dans les applications logicielles
  • Les différentes approches Java
  • Les classes du package java.util.logging
  • L'API Commons Logging
  • L'API Log4J
  • Implémentation d'un système de journalisation
  • Définition des stratégies de journalisation
  • Identification des destinations de message
  • Filtrage
  • Travaux pratiques : Mettre en place des "logs" au sein de l'application Banque

Mise en œuvre de tests unitaires avec JUnit

  • Nécessité des jeux de tests unitaires
  • Garantir le fonctionnement nominal
  • Garantir la non régression de votre code
  • Intégration de JUnit dans Eclipse IDE
  • Les cas de tests
  • La classe TestCase
  • Définition des prédicats
  • Tester le déclenchement des exceptions
  • Les suites de tests
  • Construction des suites de tests
  • Exécution des suites de tests
  • Bonnes pratiques pour la conception des tests
  • Travaux pratiques : Mettre en place différents tests unitaires au sein de l'application Banque

Méthodes et moyens

  • Explications théoriques suivies de pratiques guidées puis mises en autonomie
  • 1 vidéoprojecteur par salle
  • 1 ordinateur par stagiaire

Méthodes d’évaluation des acquis

  • Exercices de synthèse et d’évaluation
  • Evaluation de fin de stage

Profil formateur

Nos formateurs sont certifiés à l’issue d’un parcours organisé par nos soins. Ils bénéficient d’un suivi de compétences aussi bien au niveau technique que pédagogique.

Support stagiaire

  • Support papier ou électronique (dématérialisé)
  • Les exercices d’accompagnement peuvent être récupérés sur clef USB