L’objectif de ce cours est l'introduction des concepts de base de la programmation orientée objet (POO) par la pratique en utilisant le langage Java. Chaque chapitre comporte certaines notions qui sont traduites à sa fin en Java pour que l’étudiant puisse traduire les concepts théoriques acquis en pratique. A la fin du semestre, l'étudiant est censé avoir acquis les compétences suivantes :

1- L'essence de la programmation objet et sa transformation en langage Java

2- Acquérir un raisonnement intuitif pour donner une solution à un problème simple selon l’approche orientée objet

3- Ecrire un programme en langage Java qui soit fonctionnel

4- L'essence et l'importance du raisonnement OO et de la POO


Contenu de la matière :

Chapitre 1. Bases de la POO

1. Introduction

2. Concepts fondamentaux de la POO

a. Petit historique de la POO

b. Programmation procédurale vs programmation par objets

c. Réutilisation de code

d. Introduction à la modularité

3. Les d'objets et les classes

a. Notions d’objet

b. Notions de classe

c. Attributs

d. Notion de message

e. Résolution de problèmes par échange de messages

4. Introduction à Java

a. Types et structures de contrôle en Java

b. Classes et instanciation

c. Méthodes

d. Les références et passage de paramètres

e. Entrées/Sorties

f. Constructeur par défaut et autres constructeurs

g. Destructeurs

Chapitre 2. Encapsulation

1. Niveaux de visibilité

2. Encapsulation  a. Encapsulation de données (attributs)  b. Encapsulation de code (Messages)

3. Encapsulation en Java  a. Contrôle d’accès (public, private)  b. Accesseurs (get et set)

c. Accès à l’instance (this)  d. Variables et méthodes de classe (static)

Chapitre 3. Héritage

1. Sous-classes et héritage

2. Héritage simple, héritage multiple

3. Hiérarchie de classes

4. Polymorphisme

5. Héritage et polymorphisme en Java

a. Héritage simple (extends)  

b. Encapsulation dans l’héritage :i. Protection des membres (protected)  ii. Constructeurs des classes (this(), super())  iii. Classe ‘Object’  iv. Transtypage implicite et explicite v. Limitation de l’héritage (final)

c. Polymorphisme  i. Surcharge de méthodes  ii. Redéfinition de méthodes

d. Classes abstraites (utilisation et importance)

e. Interfaces (utilisation et importance)

 

Mode d’évaluation : Examen (60%) , contrôle continu (40%)

Références

1. Apprendre la Programmation Orientée Objet avec le langage Java. Luc Gervais. Eni. 2ème édition.

2. https://openclassrooms.com/courses/apprenez-a-programmer-en-java

3. Java 8 - Apprendre la Programmation Orientée Objet et maîtrisez le langage. Thierry GROUSSARD Luc GERVAIS. Edition ENI. 2015.

4. La programmation objet en Java. Michel Divay. Edition DUNOD. 2006.