2. 2
Objectif
• Introduction des concepts de base de la POO.
• développe des notions de base du langage JAVA
• L'étudiant est censé avoir acquit pendant le module les
compétences suivantes:
L'essence de la programmation objet en java
Lire et comprendre des programmes en java
Ecrire la solution d'un problème en java
Ecrire des applications sophistiquées (utilisation de
structures de données avancées)
• Prés requis: Algorithmique, Structures de données, Programmation I et
Programmation II
3. 3
Contenu de la matière
• Introduction à la Programmation Orientée Objet
• Les classes
– Déclaration des classes
– Les constructeurs et destructeurs
– Les méthodes d’accès
• Encapsulation
• Héritage et polymorphisme
• Interface et implémentation
• Interface graphique et Applet
5. 5
De la programmation classique vers la
programmation orientée objet
La programmation classique telle que étudiée au travers des langages
C, Pascal… définie un programme comme étant:
un ensemble de données sur lesquelles agissent des procédures et
des fonctions.
Les données constituent la partie passive du programme. Les
procédures et les fonctions constituent la partie active;
Programmer dans ce cas revenait à:
définir un certain nombre de variables (structures, tableaux…)
écrire des procédures pour les manipuler sans associer
explicitement les unes aux autres.
6. 6
De la programmation classique vers la
programmation orientée objet
Exécuter un programme se réduit alors à appeler ces procédures dans
un ordre décrit par le séquençage des instructions et en leur fournissant
les données nécessaires à l’accomplissement de leurs tâches.
7. 7
De la programmation classique vers la
programmation orientée objet
Dans cette approche données et procédure sont traitées indépendamment
les unes des autres sans tenir compte des relations étroites qui les unissent.
Les questions qu’on peut poser dans ce cas:
1. Cette séparation (données, procédures) est elle utile?
2. Pourquoi privilégier les procédures sur les données (Que veut-on faire?)?
3. Pourquoi ne pas considérer que les programmes sont avant tout des
ensembles objets informatiques caractérisé par les opérations qu’ils
connaissent?
Les langages objets sont nés pour répondre à ces questions. Ils sont
fondés sur la connaissance d’une seule catégorie d’entités informatiques: le
objets.
Un objet incorpore des aspects statiques et dynamiques au sein d’une
même notion.
8. 8
De la programmation classique vers la
programmation orientée objet
Un programme est constitué d’un ensemble d’objets chacun disposant
d’une partie procédures et d’une partie données. Les objets interagissent par
envoie de messages.
Un objet peut recevoir un msg qui déclenche:
Une fonction qui modifie son état ou
Une fonction qui envoie un msg à un autre objet
9. 9
De la programmation classique vers la
programmation orientée objet
Les objets sont de nouvelles sortes de variables encore plus
générales que les types dérivés (ou structures). Leur caractéristique
principale: ils acceptent des procédures (fonctions, subroutines)
comme composantes.
La question « Que doit faire le système ? » dans l’approche classique
devient « Sur quoi doit-il le faire? » et de quoi doit être composé mon
programme?
10. 10
De la programmation classique vers la
programmation orientée objet
Programmation classique Programmation Orienté e Objet
11. 11
La crise du logiciel
Dans les années 1970, la programmation se développe et de
nouvelles technologies logicielles apparaissent : mode multi-utilisateurs,
interfaces graphiques, programmation concurrente, …
La taille des programmes augmente également : 10 000 lignes de code
pour un logiciel de bonne taille dans les années 1970, 50000 dans les
années 1980 (et des millions de nos jours).
La crise du logiciel des années 70 est provoquée par :
1. l'impossibilité de maitriser la sureté des logiciels (pannes
nombreuses)
2. l'inflation des délais de développement
De bonnes techniques de développement logiciel deviennent nécessaires.
12. 12
Historique
La programmation objet est inventée dans les années 1970 comme une
extension de la programmation procédurale.
L'idée est de concevoir les programmes non plus comme des lignes de
codes qui s'exécutent séquentiellement, mais comme des objets qui
dialoguent..
Début en Norvège à la fin des années 60 :Simula 64 est le premier
langage à utiliser ce paradigme mais de façon limitée.
Smalltalk, développé à partir de 1971 par Alan Kay et publié en
1980, est le premier vrai langage objet.
D'autres suivront : Eiffel en 1986, Python en 1991, ...
Des versions objets de langages existants seront développées : C++
pour le C, ADA95 pour le ADA, Object Pascal pour le Pascal ..
13. 13
Historique
Année 1990: apparition de java et standardisation
de C++
Première version de Java en 1995, développée
principalement par James Gosling.
La programmation objet devient à la fin des
années 90 le paradigme dominant en programmation.
14. 14
Notions de base
Algorithmique Objet:Dans l’approche orienté objet un
algorithme sera essentiellement vu comme un ensemble d’objets
auxquels l’utilisateur envoie des messages et qui s’en envoient pendent
le fonctionnement.
Ces objets seront toujours pour l’utilisateur des boites noires et qui
contiendront des variables locales, inconnues de l’environnement, et
qui ne s’y intéressera d’ailleurs pas. Le seul moyen d’accéder à ces
objets sera l’envoie des messages qu’ils sont capables de comprendre.
15. 15
Notions de base
Un objet est une entité logicielle:
Ayant une identité
Capable de sauvegarder un état c'est-à-dire un ensemble
d’information dans des variables internes (attributs).
Répondant à des messages précis en déclenchant des activations
internes appropriés qui changent l’état de l’objet (comportement).
Ces opération sont appelées méthodes. Ce sont des fonctions liées à
des objets et qui précisent le comportement de ces objets.
Attributs :Les attributs d’un objet sont l’ensemble des
informations se présentant sous forme de variable et permettant de
représenter l’état de l’objet.
16. 16
Notions de base
Message: un message est une demande d’activation d’une méthode
envoyé à un objet.
Méthodes: une méthode est une fonction ou procédure liée à un
objet qui est déclenchée à la réception d’un message particulier, la
méthode déclenchée correspond strictement au message reçu.
La liste des méthodes définies au sein d’un objet constitue
l’interface de l’objet pour l’utilisateur.
Signature: la signature d’une méthode représente la précision de
son nom, du type de ses arguments et du type de donnée retournée.
17. 17
Notions de base
L’invocation d’une méthode peut déclencher 3 types d’actions:
Manipulation des données de l’objet;
Envoi de messages;
Création de nouveaux objets.
Classes: Une classe est un ensemble d’objets qui ont en commun:
les mêmes méthodes
les mêmes types d’attributs
Classe = attributs + méthodes + instanciations
Une instance d’une classe est un objet particulier d’une classe qui
peut activer les méthodes de la classe et qui a des valeurs particulières
de ses attributs. On définit l’objet comme l’instance d’une classe.
La classe représente pour l’objet ce que représente le type pour la
variable.
18. 18
Notions de base
Une classe est un type abstrait qui encapsulent données et
traitement. C’est une sorte de moule qui permet ensuite de créer autant
d’instances qu’on veut.
19. 19
Notions de base
Une classe est un type abstrait qui encapsulent données et
traitement. C’est une sorte de moule qui permet ensuite de créer autant
d’instances qu’on veut.
20. 20
Notions de base
public class Etudiant {
private String nom;
private String prenom;
private int Age;
public Etudiant(String nom,String prenom, int Age){
this.nom = nom;
this.prenom = prenom;
this.Age= Age;
}
public String getNom(){
return this.nom ;
}
public String getpreNom(){
return this.prenom ;
}
public int getAge(){
return this.Age ;
}
}
21. 21
Notions de base
La notion de classe
Nous allons commencer par vous exposer les notions de classe, d’objet
et d’encapsulation à partir d’un exemple simple de classe.
- Nous verrons d’abord comment créer une classe, c’est-à-dire
écrire les instructions permettant d’en définir le contenu (champs ou
données) et le comportement (méthodes).
- Puis nous verrons comment utiliser effectivement cette classe
au sein d’un programme.
22. 22
Notions de base
La notion de classe
Nous allons commencer par vous exposer les notions de classe, d’objet
et d’encapsulation à partir d’un exemple simple de classe.
- Nous verrons d’abord comment créer une classe, c’est-à-dire
écrire les instructions permettant d’en définir le contenu (champs ou
données) et le comportement (méthodes).
- Puis nous verrons comment utiliser effectivement cette classe
au sein d’un programme.