Unité d’enseignement méthodologique: UEM
Matière : Programmation Orientée Objet
Crédits : 4
Coefficient : 2
Objectifs de l’enseignement : 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
Connaissances préalables :Langage C
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é
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%)