Concept de base:

Introduction

1

La Programmation Orientée Objet (POO) est un paradigme de programmation qui permet de modéliser des concepts du monde réel en utilisant des objets, qui sont des instances de classes. Cette approche permet de structurer le code de manière modulaire, en regroupant les données et les méthodes qui leur sont associées dans des entités autonomes, les objets.

Objet:

2

En POO un objet = identité + états + comportements

L’identité : est le nom de l’objet (nom de variable).

L’états : se sont les valeurs données aux attributs (variables) contenues dans l’objet.

Comportement : se sont les méthodes (fonctions procédures) contenues dans l’objet.

Classe:

3

Une classe est une structure comme celle des enregistrements elle contient des variables (on les appellera les attributs) mais aussi des fonctions et procédures (on les appellera méthodes). Et elle décrit l'état et le comportement d’un objet.

instance:

4

l’instance d’une classe est comme une occurrence, on dit qu’un objet est une instance d’une classe.

Donc en gros on peut schématiser l’Objet, la Classe et l’Instance de cette manière :

Classe = attributs + méthodes + mécanisme d’instanciation.

Instance (objet) = valeurs d’attributs + accès aux méthodes Remarque.


Remarque : l’instance peut accéder à toutes les méthodes de sa classe, mais elle n’est pas obligée de les utiliser.

Interaction

Introduction

1

L'interaction entre objets se fait généralement par l'envoi de messages. Un objet peut envoyer un message à un autre objet pour demander une action ou une information. L'objet qui reçoit le message peut répondre en envoyant un message de retour ou en effectuant une action.
Un message veut dire appel d’une méthode de l’objet B par l’objet A.

Par exemple, supposons que nous ayons deux objets, une voiture et un conducteur. Le conducteur peut envoyer un message à la voiture pour lui demander de démarrer le moteur. La voiture peut répondre en envoyant un message de confirmation au conducteur ou en commençant à démarrer le moteur.

Dans cet exemple la classe Conducteur a une référence à un objet Voiture, et même la classe Voiture a une référence à un objet Conducteur, si l’une de ces classes n’a pas de référence sur l’autre alors elle ne peut pas envoyer de message.


Exemple : si la classe Voiture n’a pas de référence à un objet Conducteur alors :



Voici un exemple de code en JAVA qui illustre cette interaction entre deux objets :

Dans cet exemple, la classe Voiture définit une méthode demarrer_moteur qui affiche que le moteur de la voiture démarre.

La classe Conducteur a une référence à un objet Voiture et a une méthode demarrer_voiture qui appelle la méthode demarrer_moteur de l'objet Voiture et affiche que le conducteur démarre la voiture.

Lorsque nous créons une instance de la classe Conducteur et appelons sa méthode demarrer_voiture, nous voyons l'interaction entre les deux objets. Le conducteur envoie un message à la voiture pour démarrer le moteur, et la Voiture effectue une action en démarrant le moteur.

Constructeur – Destructeur:

2

Un constructeur : est une opération (Mécanisme d’instanciation ) de classe qui va construire l’instance (l’objet) de la classe. Le nom de cette méthode est identique à celui de sa classe.

Note: le constructeur nous defini les arttibuts de la classe lors de l'instentiation, de plus il n'est autoriser de le definir avec un type de retour ( function ou procedure ), on le déclare juste comme une méthode public.



Un destructeur : est une opération de classe qui détruit des objets. Cette méthode libère donc de l'espace mémoire.

Note: on a pas besoin de définir un déstructeur dans java, car java le traite automatiquement.

Classe concrète-abstraite:

3

Une classe concrète: est une classe qui est possible d'instancier.

Une classe abstraite: N’est pas instanciable, elle relève purement de l'organisation et son objectif est uniquement lié à la spécification (description exhaustive d'un module).

Les principaux concepts de la POO :L'encapsulation,L'héritage ,Le polymorphisme:

L'encapsulation:

1

Consiste à regrouper les données associées en une seule unité pour garantir une meilleure gestion et une meilleure sécurité des données.

La sécurité consiste à définir dans chaque méthode le niveau de visibilité (private, public, protect), pour limiter l’interaction des objets entre eux. Exemple : dans un objet A on peut modifier et utiliser tous les attributs et méthodes qui sont défini dans un niveau public avec un autre objet B qui est référencé par l'objet A. Mais pour modifier un attribut qui est défini dans un niveau privé, on doit passer par l'une des méthodes qui nous permet de modifier cet attribut (s'il existe).

L'héritage :

2

Permet de définir une nouvelle classe en reprenant les propriétés et les méthodes d'une classe existante, tout en ajoutant des fonctionnalités supplémentaires.

prenon un exemple avec la classe Homme.

Pour qu'une classe B hérite d'une classe A nous allons utiliser extends .

Le polymorphisme:

3

On dit que l'héritage herite des méthodes et des arttibuts d'une classe, puis ajouter des arttibuts et méthodes supplimentaire mais sans modifier les méthodes hérité, tandit que le polymorphisme permet de modifier ces méthodes hérité de differant manière.

On à implémenté la méthode DitBonjour() de manière spécifique pour chaque objet.

Voici un exemple d'une classe qu'on va appeler Homme ( personne )

dans la classe Algerien on a changer a l'aide de (@Override) la méthode DitBonjour()

aussi dans la classe Americain on a modifier la méthode DitBonjour() d'une autre facon

de ce fait, on a transformer la méthode DitBonjour() de maniére Spécéfique. Mais si vous ne voulez pas qu'une méthode soit modifier, donc on utilise le mot clé Static dans la déclaration de la méthode dans la classe mére.

Exercices