Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Supports de cours
  2. Apprendre la Programmation Orientée Objet avec le langage Java - (avec exercices pratiques et corrigés) (3e édition)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) (3e édition)

Informations

Livraison possible dès le 22 avril 2024
  • Personnalisable
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-02632-4
  • EAN : 9782409026324
  • Ref. ENI : RIM3JAPOO

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-02633-1
  • EAN : 9782409026331
  • Ref. ENI : LNRIM3JAPOO
Cette troisième édition du support s'adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage Java, pour développer des applications portables. Après un historique de la POO et du langage Java l'auteur explique pourquoi ce type de programmation est devenu...
Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 332 pages
  • Parution septembre 2020
  • Niveau Débutant à Initié
  • Parution septembre 2020
Cette troisième édition du support s'adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage Java, pour développer des applications portables.

Après un historique de la POO et du langage Java l'auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d'objet, de classe et de référence sont présentées puis les fondements de la POO que sont l'encapsulation, l'héritage, le polymorphisme et l'abstraction. Les différentes étapes d'un développement objet avec les principes de modélisation UML sont exposées.

L'auteur présente ensuite la machine virtuelle Java, son intérêt, sa richesse et un environnement de développement avec IntelliJ IDEA de la société JetBrains. Le lecteur découvre comment Java reproduit les principes de la POO en suivant des explications simples, des exemples concrets et en réalisant des exercices d'entraînement. Il découvre également les types de base du développement Java et leur utilisation, comment exploiter un IDE pour simplifier la saisie des programmes et les mettre au point. Les programmes d'essais sont de type console ou graphique, basés sur l'utilisation de Swing pour illustrer les communications entre objets. Quand ils sont pertinents, des parallèles sont menés avec les langages de programmation objet C++ et C#. La programmation multithread permettant l'exécution simultanée de plusieurs flux d'instructions est présentée, suivie d'une introduction aux tests unitaires tellement importants pour fiabiliser les objets. Une partie consacrée à la réflexion en Java promet quelques surprises. Enfin, le dernier chapitre est consacré aux classes anonymes et aux expressions lambda.

À la fin de ce support, le lecteur disposera de bases solides pour appréhender les puissantes API Java et réaliser des programmes objet modulaires, fiables et extensibles.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.

Téléchargements

Introduction à la POO
  1. 1. Histoire de la POO
  2. 2. Historique du langage Java
La conception orientée objet
  1. 1. Approche procédurale et décomposition fonctionnelle
  2. 2. La transition vers l'approche objet
  3. 3. Les caractéristiques de la POO
    1. 3.1 L'objet, la classe et la référence
      1. 3.1.1 L'objet
      2. 3.1.2 La classe
      3. 3.1.3 La référence
    2. 3.2 L'encapsulation
    3. 3.3 L'héritage
    4. 3.4 Le polymorphisme
    5. 3.5 L'abstraction
  4. 4. Le développement objet
    1. 4.1 Cahier des charges du logiciel
    2. 4.2 Présentation du cycle en V
    3. 4.3 Rester AGILE avec le corps en V
    4. 4.4 Modélisation et représentation UML
      1. 4.4.1 Les diagrammes de cas d'utilisation
      2. 4.4.2 Les diagrammes de classes
      3. 4.4.3 Les énumérations
      4. 4.4.4 Les diagrammes de séquences
    5. 4.5 Codage, intégration et mise en production
  5. 5. Exercices
    1. 5.1 Hiérarchie de classes
    2. 5.2 Relations entre objets
    3. 5.3 Agrégation d’objets
    4. 5.4 Diagramme de cas d’utilisation
    5. 5.5 Diagramme de séquences
Introduction à la plate-forme Java
  1. 1. Introduction
  2. 2. Environnement d'exécution
  3. 3. Une librairie très complète
  4. 4. Des outils de développement performants
  5. 5. Téléchargement et installation d’IntelliJ IDEA
  6. 6. L'incontournable Hello World
  7. 7. Un point sur les acronymes
Les types en Java
  1. 1. Introduction
  2. 2. Les types primitifs
  3. 3. Les types référence
  4. 4. Pour nous aider...
  5. 5. La superclasse java.lang.Object
    1. 5.1 equals
    2. 5.2 hashCode
    3. 5.3 toString
    4. 5.4 finalize
    5. 5.5 getClass, .class et l'opérateur instanceof
    6. 5.6 clone
    7. 5.7 notify, notifyAll et wait
  6. 6. La classe java.lang.String
  7. 7. Exercice
    1. 7.1 Énoncé
    2. 7.2 Corrigé
Création de classes
  1. 1. Introduction
  2. 2. Package
  3. 3. Déclaration d'une classe
    1. 3.1 Accessibilité des membres
    2. 3.2 Attributs
    3. 3.3 Accesseurs
    4. 3.4 Constructeurs
      1. 3.4.1 Étapes de la construction d'un objet
      2. 3.4.2 Surcharge de constructeurs
      3. 3.4.3 Chaînage de constructeurs
      4. 3.4.4 L'initialiseur static
      5. 3.4.5 L'initialiseur dynamique
      6. 3.4.6 Les constructeurs de type private
      7. 3.4.7 Le "builder pattern"
    5. 3.5 Destructeurs
    6. 3.6 Le mot-clé this
    7. 3.7 Méthodes
      1. 3.7.1 Déclaration
      2. 3.7.2 Passages de paramètres par valeur
    8. 3.8 Surcharge des méthodes
    9. 3.9 Mécanisme des exceptions
      1. 3.9.1 Présentation
      2. 3.9.2 Principe de fonctionnement des exceptions
      3. 3.9.3 Prise en charge de plusieurs exceptions
    10. 3.10 Exercice
      1. 3.10.1 Énoncé
      2. 3.10.2 Conseils
      3. 3.10.3 Corrigé
  4. 4. Les interfaces
    1. 4.1 Introduction
    2. 4.2 Le contrat
    3. 4.3 Déclaration d'une interface
    4. 4.4 Implémentation
    5. 4.5 IntelliJ IDEA et les interfaces
    6. 4.6 Représentation UML d'une interface
    7. 4.7 Interfaces et polymorphisme
    8. 4.8 Exercice
      1. 4.8.1 Énoncé
      2. 4.8.2 Conseils
      3. 4.8.3 Corrigé
    9. 4.9 Les interfaces de la machine virtuelle Java
  5. 5. Associations, compositions et agrégations
    1. 5.1 Les tableaux
    2. 5.2 Les collections
      1. 5.2.1 ArrayList<E> et LinkedList<E>
      2. 5.2.2 Queue<T> et Stack<T>
      3. 5.2.3 HashMap<K, V>
      4. 5.2.4 Les itérateurs
    3. 5.3 Exercice
      1. 5.3.1 Énoncé
      2. 5.3.2 Corrigé
  6. 6. Les classes imbriquées
  7. 7. Quelques différences avec le C#
Héritage et polymorphisme
  1. 1. Comprendre l'héritage
  2. 2. Codage de la superclasse (classe de base) et de sa sous-classe (classe héritière)
    1. 2.1 Interdire l'héritage
    2. 2.2 Définir les membres héritables
    3. 2.3 Syntaxe de l'héritage
    4. 2.4 Exploitation d'une classe héritée
  3. 3. Communication entre classe de base et classe héritière
    1. 3.1 Les constructeurs
    2. 3.2 Accès aux membres de la classe de base depuis l'héritier
    3. 3.3 Méthodes virtuelles
    4. 3.4 Méthodes de type "final"
  4. 4. Exercice
    1. 4.1 Énoncé
    2. 4.2 Corrigé
  5. 5. Les classes abstraites
  6. 6. Le polymorphisme
    1. 6.1 Comprendre le polymorphisme
    2. 6.2 Exploitation du polymorphisme
    3. 6.3 Les opérateurs instanceof et ()
Communication entre objets
  1. 1. L'événementiel : être à l'écoute
  2. 2. Le pattern Observateur
    1. 2.1 Généralités
    2. 2.2 Implémentation en langage Java
    3. 2.3 Les listeners
    4. 2.4 Utilisation d'un listener dans une application graphique
  3. 3. Exercices
    1. 3.1 Exercice 1
      1. 3.1.1 Énoncé
      2. 3.1.2 Corrigé
    2. 3.2 Exercice 2
      1. 3.2.1 Énoncé
      2. 3.2.2 Corrigé
  4. 4. Appels synchrones, appels asynchrones
Le multithreading
  1. 1. Introduction
  2. 2. Comprendre le multithreading
  3. 3. Multithreading et Java
  4. 4. Implémentation des threads en Java
    1. 4.1 Étendre la classe Thread
    2. 4.2 Implémenter l'interface Runnable
    3. 4.3 S'endormir et S'attendre
    4. 4.4 Abandon depuis le thread primaire
    5. 4.5 Threads et classes anonymes
      1. 4.5.1 Avec l'interface Runnable
      2. 4.5.2 Avec la classe Thread
      3. 4.5.3 Accès aux variables et aux données membres simplifié
  5. 5. Synchronisation entre threads
    1. 5.1 Nécessité de la synchronisation
    2. 5.2 Les méthodes "synchronized"
    3. 5.3 Les traitements "synchronized"
    4. 5.4 La classe Semaphore
  6. 6. Communication interthreads
    1. 6.1 La méthode join
    2. 6.2 Les objets de synchronisation
  7. 7. Exercice
    1. 7.1 Énoncé
    2. 7.2 Corrigé
Les tests
  1. 1. Introduction
  2. 2. Environnement d’exécution des tests unitaires
  3. 3. Le projet avec tests unitaires
  4. 4. La classe de tests
  5. 5. Contenu d’une méthode de test
  6. 6. Traitements de préparation et de nettoyage
  7. 7. Les tests avec paramètres externes
  8. 8. Les suites de tests
  9. 9. Exercice
    1. 9.1 Énoncé
    2. 9.2 Corrigé
La réflexion
  1. 1. Introduction
  2. 2. Mais pour quoi faire ?
  3. 3. Introspection d'une classe Java
  4. 4. Chargement dynamique et utilisation d'une classe découverte
  5. 5. Exercice
  6. 6. Privé, mais pas tant...
  7. 7. Décompilation et obfuscation
Anonymat et lambda
  1. 1. Introduction
  2. 2. Les classes anonymes
    1. 2.1 D’une pierre deux coups
    2. 2.2 Syntaxe particulière
    3. 2.3 Exemple d'extension d'une superclasse
    4. 2.4 Exemple d'implémentation d'une interface
    5. 2.5 Échange d’informations
    6. 2.6 Exercice
      1. 2.6.1 Énoncé
      2. 2.6.2 Corrigé
  3. 3. Les expressions lambda
    1. 3.1 Le concept
    2. 3.2 Les interfaces « fonctionnelles » comme modèles
    3. 3.3 Les syntaxes lambda
    4. 3.4 Échange d’informations
    5. 3.5 Exercice
      1. 3.5.1 Énoncé
      2. 3.5.2 Correction
    6. 3.6 Paramètre type Lambda
    7. 3.7 java.util.function, un package « vivier »
    8. 3.8 Application sur des collections
    9. 3.9 Conclusion
    10. Index
Auteur : Luc  GERVAIS

Luc GERVAIS

Luc Gervais exerce depuis 35 ans la profession de développeur logiciel. Venant du monde de l’électronique il a commencé par programmer en langage assembleur pour ensuite passer au C, C++, C# et Java. Il a animé de nombreuses formations sur différents langages de programmation aussi bien pour un public de développeurs professionnels que d’étudiants (Université de Rouen). Cette double expérience (technique et pédagogique) lui permet de répondre parfaitement aux attentes des lecteurs désireux de passer à la Programmation Orientée Objet (POO).
En savoir plus

Nos nouveautés

voir plus