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é

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%)