Java 1

Présentation

Ce cours reprend trois concepts fondamentaux de la programmation objet abordés en Python (l'encapsulation, la composition et l'héritage) et les développe dans le contexte technique différent d’un langage de programmation impératif et typé statiquement : le langage Java. L'objectif est triple :

  • mettre en évidence l'intérêt essentiel de la programmation objet, i.e. sa nature intrinsèquement modulaire et extensible
  • donner les premiers éléments méthodologiques de conception qui permettent de déterminer les objets utiles à la réalisation d'un programme en précisant leurs responsabilités et leurs interactions
  • consolider la maîtrise du langage Java, de ses constructions élémentaires, et de son API standard

L'UE est organisée en 3 leçons comportant chacune un cours, une séance de travaux dirigés et une à deux séances de travaux pratiques :

1 Encapsulation : modèle de données structurées, enfouissement, initialisation, consultation, mise à jour, interface d'interactions

2 Composition : références d'objet, changement d'état, interaction, délégation

3 Héritage : extension de structure, extension de comportement, mise à jour de comportement, liaison dynamique, polymorphisme

 

 

 

Pré-requis nécessaires

Pour aborder ce cours, il est utile d'avoir déjà programmé dans un langage de programmation procédural et d'avoir un minimum de connaissances sur :

  • les types, les variables, les opérateurs
  • les instructions de contrôle (appels, boucles, conditionnelles)
  • l'algorithmique élémentaire (tri, recherche de max, calcul, etc.)

L'UE Algorithmique et Programmation de L1 fournit ces pré-requis.

Compétences visées

Traduire la spécification d'un programme en système d'objets en assignant des responsabilités.

Concevoir un programme à la fois ouvert à l'extension et fermé à la modification.

Mobiliser à bon escient les constructions du langage Java et de son API.

Bibliographie

- Mickaël Kerboeuf : Fondements de la programmation orientée objet avec Java 8. Références Sciences, Ellipses, décembre 2016, ISBN 9782340014824.

- Mickaël Kerboeuf : Algorithmique et programmation objet. Références Sciences, Ellipses, mai 2020, ISBN 9782340037984.

- James Gosling, Bill Joy, Guy Steele et Gilad Bracha : The Java(TM) Language Specification (3rd Edition). Addison-Wesley Professional, 2005, ISBN 0321246780.

- Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides : Design Patterns, Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., 1995, ISBN 0-201-63361-2.