Vous êtes sur la page 1sur 46

19/05/2013

Institut Universitaire Professionnel de Nouakchott

Programmation Orientée Objet


JAVA
RxTel : L2 : S3
Moustapha OULD BECHIR
Ingénieur, consultant en EEI
2012/2013
1

Institut Universitaire Professionnel de Nouakchott

Contenu du cours
Partie I: Programmation Orientée Objet
• Introduction
• Concepts de base
• UML
• Classes et Objets
• Méthodes et Opérations
• Liens et Associations
• Généralisation et Héritage
Programmation Orientée objet-JAVA: RxTel: S3 2
M. OULD BECHIR: mobechir@yahoo.fr

1
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Contenu du cours
Partie II: JAVA
• Instructions de base
• Types primitifs
• Opérateurs et expressions
• Structure d’un programme JAVA
• Structures de contrôles
• Classes et objets
• Héritage, Polymorphisme
• Interfaces, Paquetage
Programmation Orientée objet-JAVA: RxTel: S3 3
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Déroulement du cours
• Volume horaire 40 heures (CM et TD)
• Cours sous forme de présentation ppt distribuée en fin
de chaque séance
• TD sous les stations de travail (JCreator , Eclipse, …)
• Samedi (10h-12h) & Mercredi (15h-17h)
• 2 CC (4ème semaine, 6ème semaine) sans les documents
• 1 Examen final, sans les documents
• NF=2/5 CC + 3/5 EF + PB
• Respect des horaires et attitude correcte

Programmation Orientée objet-JAVA: RxTel: S3 4


M. OULD BECHIR: mobechir@yahoo.fr

2
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Introduction

Partie I: Programmation Orientée Objet(P00)


Définition#1 :
Un paradigme de programmation, dans lequel le programme
manipule des objets possédant des propriétés à travers des
opérations

Définition#2 :
Conception de modèles permettant de représenter des entités du
monde physique par des objets qui possèdent une structure
interne et un comportement et qui réagissaient entre eux à
travers des relations en réalisant les fonctionnalités souhaitées

Programmation Orientée objet-JAVA: RxTel: S3 5


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Introduction

Mise en parallèle PE, PI & POO


Programmation impérative : exécution séquentielle d’instructions
« La séquence des opérations à effectuer est prédéterminée, le programme conduit le
process »

Programmation Orientée Objet : concept d’objet avec champs


et méthodes

Programmation évènementielle : exécution variable des


opérations « c’est l’utilisateur qui conduit le process »

Programmation Orientée objet-JAVA: RxTel: S3 6


M. OULD BECHIR: mobechir@yahoo.fr

3
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Introduction

Programmation évènementielle & réseau :


7
LPRT : S4, M. OULD BECHIR

Institut Universitaire Professionnel de Nouakchott

Introduction

Historique de la POO

• 1950 : Langage de bas niveau  Assembleur (Maurice V. Wilkes -Cambridge)


• 1957: Langage de haut niveau  FORTRAN (FORmula TRANslator) John Backus (IBM)
• Années 70: Programmation structurée  Pascal, C
• 1972: 1 Langage Orienté Objet Smalltalk (Alan Kay au Xerox PARC)
er

•1983: Invention du C++ (Bjarn Stroustrup)


•1990: Développement de JAVA (SUN)

http://histoire.info.online.fr

Programmation Orientée objet-JAVA: RxTel: S3 8


M. OULD BECHIR: mobechir@yahoo.fr

4
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

Objet

C’est une entité manipulée par le langage et qui a un sens


dans le contexte de l’application

Un Objet est caractérisé par:


 Une identité : existence concrète à travers le nom
 Un état interne: valeurs des variables à travers ses attributs
 Un comportement: opérations sur les attributs à travers les
méthodes

Programmation Orientée objet-JAVA: RxTel: S3 9


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

Classe

Une classe décrit un groupe d'objets ayant des propriétés


similaires, un comportement commun et des relations
communes avec les autres objets.

Une Classe, regroupe une famille d’objets ayant:


 La même structure
 Le même comportement
 Des valeurs d’attributs différents
 Une classe abstraite est une classe qui n’a pas d’instance
directe
Programmation Orientée objet-JAVA: RxTel: S3 10
M. OULD BECHIR: mobechir@yahoo.fr

5
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

 Attributs
Classe

Un Attribut (champ) est une propriété commune à tous les


objets d’une même classe

 Méthodes
Classe

Un Méthode est une fonction ou une transformation


appliquée aux objets d’une classe

Programmation Orientée objet-JAVA: RxTel: S3 11


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

Instance

Une Instance est une entité ou un objet particulier de la classe


avec des valeurs particulières des attributs

Une Classe contient plusieurs instances

Une instance/objet est pour la classe ce que la variable est


pour le type

Programmation Orientée objet-JAVA: RxTel: S3 12


M. OULD BECHIR: mobechir@yahoo.fr

6
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

Exemple: Modéliser l’entité Personne


Objectif: On cherche à définir la classe, les attributs et les méthodes
ainsi qu’à identifier les instances et les objets
Personne 1

Personne Nom: Mohammed


Date de naissance: 1990
Nom Taille: 1m78
Attributs Date de naissance
Taille Abdellahi Personne 2
DonnerNom() 18 Nom: Abdellahi
Méthodes DonnerTaille() Date de naissance: 1995
CalculerAge() Taille: 1m69

Personne 3
Nom:
Date de naissance:
Taille:
Programmation Orientée objet-JAVA: RxTel: S3 13
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Concepts de base de la POO

Exercice: Modéliser l’entité Etudiant


Objectif: On cherche à définir la classe, les attributs et les méthodes
ainsi qu’à identifier les instances et les objets
Etudiant1

Nom: Mohammed
Etudiant Date de naissance: 1990
Bac: C
Nom Note:14
Classe: RxTel: S1
Attributs Date de naissance
Bac Abdellahi Etudiant2
Note Nom: Abdellahi
Classe Date de naissance: 1990
Méthodes Bac: D
Note:12
DonnerNom() RxTel: S1 Classe: RxTel: S1
DonnerClasse()
Etudiant 3
CalculerNote()
Nom:
Date de naissance:
Programmation Orientée objet-JAVA: RxTel: S3 …
14
M. OULD BECHIR: mobechir@yahoo.fr

7
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

1. Définition
Unified Modeling Language (UML) : Langage de Modélisation
Unifié, est une méthode de modélisation graphique orientée
objet.
Il s’agit d’un formalisme, permettant d’appréhender un
problème et de le modéliser

2. Historique
 Lancé pour répondre à un besoin de standardisation
 Hérite de OMT (Object Modeling Technics) et OOSE (Object
Orieted Software Engineering)
 Auteurs: Grady Booch, Ivar Jacobson et Jim Rumbaugh
Programmation Orientée objet-JAVA: RxTel: S3 15
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

3. Modèles
 Modèle des Classes: représente le concept usuel de la POO
 Modèle des Etats : représente la dynamique des objets
 Modèle des Cas d’Utilisation : décrit les besoins de
l’utilisateur
 Modèle d’Interaction : représente les interactions entre les
objets
 Modèle de Réalisation : phases terminales de
développement
 Modèle de Déploiement : phases terminales de
développement

Programmation Orientée objet-JAVA: RxTel: S3 16


M. OULD BECHIR: mobechir@yahoo.fr

8
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

4. Le Modèle des Classes


4.1 Définition
Traduit la structure statique d’un système en montrant les
objets dans le système, les attributs et les opérations qui
caractérisent chaque classe d’objet

Il utilise :
Le diagramme des classes
 Modélisation des classes
 le diagramme d’objets
 Modélisation des instances

Programmation Orientée objet-JAVA: RxTel: S3 17


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

4. Le Modèle des Classes


4.2 Diagramme de classes
i) Exemple

Classe Instance Instance Objet anonyme


de la classe Etudiant dont le nom est spécifié dont la classe est spécifiée
mais pas la classe mais pas le nom

Programmation Orientée objet-JAVA: RxTel: S3 18


M. OULD BECHIR: mobechir@yahoo.fr

9
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

4. Le Modèle des Classes


4.2 Diagramme de classes
ii) Règles
 Les noms des classes et des instances/objets sont écrits en
minuscules et commencent par une majuscule
 Le nom d’une classe est toujours au singulier
 Le nom d’une instance est suivie de : et du nom de classe à
laquelle elle appartient
 Les classes et les instances sont représentées par des rectangles
 Une classe ne peut figurer plus d’une fois dans un seul diagramme

Programmation Orientée objet-JAVA: RxTel: S3 19


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

4. Le Modèle des Classes


4.2 Diagramme de classes
iii) Commentaire
 Un commentaire est parfois nécessaire pour enlever une
ambiguité dans le diagramme.
 On utilise les accolades pour insérer un commentaire:
{Ceci est un commentaire}

iv) Attribut
Pour chaque instance d’une classe ayant un attribut, l’instance
possède cet attribut et cet attribut doit prendre une valeur pure et
non pas un autre objet
Programmation Orientée objet-JAVA: RxTel: S3 20
M. OULD BECHIR: mobechir@yahoo.fr

10
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

4. Le Modèle des Classes


4.2 Diagramme de classes
v) Exemple

Nom: String Nom: Abdellahi


Date de naissance: Date Date de naissance: 1990
Bac: String Bac: S
Note: Integer Note: 14
Classe: String Classe: RxTel:S3

Instance
Classe de la classe Etudiant
avec des valeurs
pures pour les
différents attributs

Programmation Orientée objet-JAVA: RxTel: S3 21


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

5. Méthodes
5.1 Définition
Une méthode/opération est une fonction ou une
transformation qui peut être appliquée aux objets/instances
d'une classe.
5.2 Propriétés
 Une méthode peut s’appliquer sur plusieurs classes
 Polymorphe.
 Une opération peut avoir des paramètres  fonction ou une procédure
en programmation classique
 Une méthode doit avoir la même signature  nombre et types de
paramètres

Programmation Orientée objet-JAVA: RxTel: S3 22


M. OULD BECHIR: mobechir@yahoo.fr

11
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

5. Méthodes
5.3 Exemple

 Nom de la classe: Etudiant


Nom: String  Liste des attributs: Nom, Date de
Date de naissance: Date naissance, Bac, Note et Classe
Bac: String Attributs
Note: Integer  Méthodes:
Classe: String - DonnerNom(): sans paramètre
et avec retour
DonnerNom():String
DonnerNom():String
- ChangerNote(): paramètre note
ChangerNote((N:int
ChangerNote N:int))
EstAdmis((N:int
EstAdmis N:int):
):bool
bool Méthodes et sans retour
Ajouter() - EstAdmis(): paramètre note et
type de retour booléen
- Ajouter(): sans paramètre et
sans retour

Programmation Orientée objet-JAVA: RxTel: S3 23


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

6. Liens & Associations


6.1 Définition
 Lien: relation entre objets/instances
 Association: lien entre classes
 Une association décrit un groupe de liens
6.2 Exemple

EstInscritEn : est une association de la classe Etudiant avec la


classe Classe
 ApourCapitale: est une association entre Pays et Ville

Programmation Orientée objet-JAVA: RxTel: S3 24


M. OULD BECHIR: mobechir@yahoo.fr

12
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

6. Liens & Associations


6.2 Exemple  suite

EstInscritEn>
EstLaClasseDe<
ApourCapiatale>
EstLaCapitaleDe<

Pour une association binaire : il existe un rôle vers l'avant et un


rôle inverse
 Une association peut relier une, deux ou plusieurs classes. Dans le
cas où elle relie n classes elle est dite n-aire
Programmation Orientée objet-JAVA: RxTel: S3 25
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

6. Liens & Associations


6.2 Exemple  suite
Le symbole représentant une association n-aire est le losange. Il est
placé au centre de l’association ; les n branches de l’association l’ont
pour origine et ont les n classes de l’association pour destination.
Est inscrit dans une classe et apprend un langage

 Pour éviter l’ambiguité, on remplace l’association ternaire par trois associations binaires
Programmation Orientée objet-JAVA: RxTel: S3 26
M. OULD BECHIR: mobechir@yahoo.fr

13
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

6. Liens & Associations


6.3 Multiplicité/Cardinalité
Pour les deux rôles d’une association binaire, la multiplicité est un
ensemble de valeurs indiquant le nombre possible d'instances de la
classe destination du rôle qui peuvent être reliées à une instance de
la classe origine du rôle.

1 EstInscritEn> ∞
La multiplicité est écrite du côté de la classe destination du rôle
 Un à un (1,1)
 Un à plusieurs (1, ∞)
 Zéro à plusieurs (0, ∞)
 Intervalle (a..b)
 Valeurs (a, b, c)
Programmation Orientée objet-JAVA: RxTel: S3 27
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

6. Liens & Associations


6.4 Attribut de lien
Un attribut de lien est une propriété de lien. Elle est notée par une
boîte rattachée par une boucle à l'association.

1 EstInscritEn> ∞

Permission
de s’inscrire

Programmation Orientée objet-JAVA: RxTel: S3 28


M. OULD BECHIR: mobechir@yahoo.fr

14
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

7. Généralisation / Héritage
7.1 Définition
La généralisation est la relation entre une classe et une ou
plusieurs versions affinées de la classe.

On appelle la classe dont on tire les précisions, la super-


classe et les autres classes les sous-classes.
 La notation utilisée pour la généralisation est le triangle

Programmation Orientée objet-JAVA: RxTel: S3 29


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

7. Généralisation / Héritage
7.1 Définition

 La classe Personne généralise les classes Etudiant, Professeur et


Surveillant
 L’opération inverse de la généralisation est la spécialisation
 Les classes Etudiant, Professeur et Surveillant, spécialisent la classe
Personne

Programmation Orientée objet-JAVA: RxTel: S3 30


M. OULD BECHIR: mobechir@yahoo.fr

15
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

7. Généralisation / Héritage
7.2 Héritage

 Si une propriété est définie dans la super-classe, la propriété existe alors


dans toutes les sous-classes.
 On dit que la sous-classe hérite des propriétés de la super-classe.

Programmation Orientée objet-JAVA: RxTel: S3 31


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Unified Modeling Language UML

7. Généralisation / Héritage
7.2 Héritage
7.2.1 Redéfinition des méthodes

 Une sous-classe peut redéfinir une caractéristique de la super-classe en


définissant une propriété portant le même nom.
 La nouvelle propriété remplace celle de la super-classe pour les objets de
la sous-classe.
 Une redéfinition ne peut pas changer la signature de la propriété.

Programmation Orientée objet-JAVA: RxTel: S3 32


M. OULD BECHIR: mobechir@yahoo.fr

16
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Environnement de développement intégré (IDE)

Il s’agit d’un environnement de développement intégré dans un


progiciel et offrant :
-Un concepteur d’interfaces Homme/Machine HMI ou
d’interfaces Graphiques d’Utilisateur GUI;
- Un éditeur de code;
- Un compilateur et
- Un debugger

Plusieurs IDE commerciaux: Jbuilder, VisualJ++, Fort for JAVA,


Eclipse …etc.

Programmation Orientée objet-JAVA: RxTel: S3 33


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Environnement de développement intégré (EDI)

Introduction
- Java est un ancien langage proche du C, amélioration du C++
- Indépendant de la plateforme
- Multithread
- Langage OO
- Plusieurs API (Application Program Interface)
- Les objets sont des pointeurs mais sans accès direct à la mémoire
- La gestion de la mémoire est implicite (garbage collector)

Programmation Orientée objet-JAVA: RxTel: S3 34


M. OULD BECHIR: mobechir@yahoo.fr

17
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Environnement de développement intégré (EDI)

Environnement de travail

- Installer JDK(JVM): http://java.sun.com/javase/6/download.jsp


- Disposer d’un éditeur de texte (Notepad, bloc notes…)
- Compiler à l’aide de javac à partir de la console MS-DOS
- Exécuter le programme avec java à partir de la console MS-DOS

Programmation Orientée objet-JAVA: RxTel: S3 35


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Environnement de développement intégré (EDI)

Environnement de travail: JVM, JRE & JDK

- JVM: Java Virual Machine, interprète le byte code (.class) et le traduit en


code machine en fonction de l’OS
- JRE: Java Runtime Environment, il inclut JVM et quelques librairies et
sert à l’exécution des programmes écrits en Java
- JDK: Java Developer Kit, il inclut JRE et les outils de développement
d’applications Java (compilateur…)

Programmation Orientée objet-JAVA: RxTel: S3 36


M. OULD BECHIR: mobechir@yahoo.fr

18
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Environnement de développement intégré (EDI)

Environnement de travail: Préparation de l’environnement

-Installer la version du JDK correspondante à l’OS


(jdk-7-windows-i586.exe: pour WINDOWS 7)
(Lancer SoftonicDownloader_pour_java-development-kit-jdk.exe, il
trouvera la bonne version)
- Installer JCreator: En lançant le SETUP.exe

Programmation Orientée objet-JAVA: RxTel: S3 37


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA

1. Variables et types de données


2. Instructions élémentaires
3. Opérateurs & expressions
4. Structure d’un programme JAVA
5. Structures de contrôle
6. Les fonctions mathématiques
7. Classes & objets
8. Méthodes/Constructeurs
9. Polymorphisme
10. Héritage
11. Interfaces
12. Paquetage
Programmation Orientée objet-JAVA: RxTel: S3 38
M. OULD BECHIR: mobechir@yahoo.fr

19
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


I. Variables et types de données
1.1 Identificateur
C’est une suite de lettres, de chiffres, d’underscore et de dollar  Ne doit pas
commencer par un chiffre. Distinction entre minuscules et majuscules

1.2 Conventions
 Tout nom de classe ou d’interface commence par une majuscule  MaClasse
 Tout nom de méthode ou de variable d’instance commence par une
getNom()
minuscule
 Tout nom de constante (final) est écrit en majuscules avec underscore
 PI_APRX
 Commentaire sur une ligne //
 Commentaire sur plusieurs lignes /* ………………………………..*/

Programmation Orientée objet-JAVA: RxTel: S3 39


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


I. Variables et types de données
 Interdit de nommer une variable avec ces mots
1.3 Mots clés
abstract this protected
Double case try
int finally Const
super New if
boolean throw Public
else catch void
interface float Continue
switch package t implements
break hrows return
extends char volatile
long for default
synchronized private Import
byte transient short
final class while
native goto do
instanceof
Programmation Orientéestatic
objet-JAVA: RxTel: S3 40
M. OULD BECHIR: mobechir@yahoo.fr

20
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


I. Variables et types de données
1.4 Types primitifs (8 types)
 Entier: byte, short, int et long (tous signés) 1, 2, 4 et 8 Octets
 Réel: float et double 4 et 8 Octets
 Booléen: bool1 Octet
 Char 2 Octets

Programmation Orientée objet-JAVA: RxTel: S3 41


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


II. Instructions élémentaires
Ecriture Console

public class Ecriture { //Le nom de la classe .java


public static void main(String[] args) { //La méthode principale
System.out.println("Bonjour tout le monde"); //Appel de la fonction d’affichage
}
}

 public: peut être appelée de partout


 static: pas besoin de créer l’objet pour l’appeler
 void: pas de retour (renvoi)
 String [] args ou String args[] : args est un tableau de String correspondant aux paramètres

Programmation Orientée objet-JAVA: RxTel: S3 42


M. OULD BECHIR: mobechir@yahoo.fr

21
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


II. Instructions élémentaires
Ecriture Console
Compilation/exécution

C:\>cd Program Files\Java\jdk1.7.0\bin\


C:\Program Files\Java\jdk1.7.0\bin> javac C:\Users\mc\javprog\S3\Ecriture.java
C:\Users\mc\javprog\S3>java Ecriture

Programmation Orientée objet-JAVA: RxTel: S3 43


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


II. Instructions élémentaires
Lecture
a) Lecture d’un texte d’une fenêtre console
 Utilisation de BufferedReader
import java.io.*;

public class LectureConsole


{
public static String lireString()
{
String ligne_lue = null;
try
{
InputStreamReader lecteur = new InputStreamReader(System.in);
BufferedReader entree = new BufferedReader(lecteur);
ligne_lue = entree.readLine();
}
catch (IOException err)
{
}
return ligne_lue;
}

Programmation Orientée objet-JAVA: RxTel: S3 44


M. OULD BECHIR: mobechir@yahoo.fr

22
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


II. Instructions élémentaires
Lecture
b) Lecture d’un entier/réel
 Utilisation de BufferedReader
 Pour la lecture d’un autre type il suffit d’utiliser la méthode :
type.parseType(variable)

Exemple:

String texte;
Double d=Double.parseDouble(texte); // Converti le texte en réel flottant
int d=Integer.parseInt(texte); // Converti le texte en entier

Programmation Orientée objet-JAVA: RxTel: S3 45


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


II. Instructions élémentaires
Lecture
c) Lecture d’une variable
 Utilisation de Scanner
 Pour la lecture d’une variable à partir de la console, on utilise la classe
java.util.Scanner
Exemple:
java.util.Scanner entree = new java.util.Scanner(System.in);

System.out.println("Donnez votre prénom puis votre nom");


String prenom = entree.next();
String nom = entree.next();
NB. Formatage d’un réel
DecimalFormat deuxDecimal = new DecimalFormat("0.00");
System.out.println("Donnez votre âge"); System.out.println("x= " + deuxDecimal.format(x));
int age = entree.nextInt();

System.out.println("Donnez votre taille");


Double taille = entree.nextDouble();
Programmation Orientée objet-JAVA: RxTel: S3 46
M. OULD BECHIR: mobechir@yahoo.fr

23
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


III. Opérateurs & expressions
Opérateurs arithmétiques
Addition (+)
 Soustraction (-)
 Multiplication (*)
 Division (/)
 Reste de la division %

Opérateurs de comparaison
Egalité (==)
 Supériorité /Infériorité (>, <, >=, <=)
 Différence (!=)

Programmation Orientée objet-JAVA: RxTel: S3 47


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


III. Opérateurs & expressions
Opérateurs logiques
ET (&&)
 OU (||)
 OU EXLUSIF (^)
 INVERSION (!)

Opérateurs d’affectation
 Affectation : i=i+5;
 Affectation élargie : i+=j;  i=i+j; (pareil avec -=, *=, et/= )
 Post incrémentation : i++ i=i+1 retourne i avant incrémentation
 Pré incrémentation : ++i  i=i+1 retourne i après incrémentation

Programmation Orientée objet-JAVA: RxTel: S3 48


M. OULD BECHIR: mobechir@yahoo.fr

24
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


III. Opérateurs & expressions
Opérateur de CASTING (Transtypage)

 Conversion explicite: forçage de la conversion


Type variable2= (Type)variable1;
Exemple: int i1, i2;
Double r=(Double)int1/int2;

 Conversion implicite: pas besoin de préciser le type du résultat


int  Double
Exemple: int i1, i2;
r=int1/int2; r sera alors de type int

Programmation Orientée objet-JAVA: RxTel: S3 49


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


III. Opérateurs & expressions
Conversion d’un type primitif en String
Soient une variable primitive var (int, Double…), cette variable peut être
convertie en String selon l’une des trois méthodes :

 String S=‘’ ‘’+var;


 String S=String.valueOf(var);
 String S=new Integer(var).toString();
 String S=new Double(var).toString();

Conversion d’un String en type primitif


 int a=Integer.parseInt(var);
 Double r=Double.parseDouble(var);

Programmation Orientée objet-JAVA: RxTel: S3 50


M. OULD BECHIR: mobechir@yahoo.fr

25
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


IV. Structure d’un programme JAVA
public class Personne{ //Classe
public String nom, prenom; //Attributs
public int age;

public Personne(String parm1, String parm2, int parm3) // Constructeur


{
this.nom=parm1;
this.prenom=parm2;
this.age=parm3;
}

public String getNom() //Méthode


{
return this.nom;

public static void main(String[] args) //Méthode principale


{
Personne p1=new Personne("Mohamed","SIDI",24); //Instance de Personne
String nom=p1.getNom(); //Appel de la méthode getNom()
System.out.println(nom);
}
ProgrammationOrientée
Programmation évènementielle & réseau
objet-JAVA: RxTel::S3
RxTel: S3
} M. OULD BECHIR: mobechir@yahoo.fr
51
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


V. Structures de contrôle
Structure Syntaxe en JAVA

SI If(condition) { instruction}

SI, SINON If(condition) { instruction}


else {instruction}

SI, SINON SI If(condition) { instruction}


Else if (condition) {instruction}

SELON QUE Switch(var)


Case 1: {} break;
Case 2:{} break;

Default:{} break;
Tant que While(condition) {instruction}

Répéter Do{instructions;
}
While(condition);
Pour For(i=1;i<=k;i++){instruction}

Programmation Orientée objet-JAVA: RxTel: S3 52


M. OULD BECHIR: mobechir@yahoo.fr

26
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


V. Structures de contrôle
Exemples: Compteur de 1 à 10 de trois manière
public class MonCompteur{
public static void main(String[] args)
{
int i=1;

while(i<=10) // Boucle while


{
System.out.println("Je compte "+i);
i++;
}

for(i=1;i<=10;i++) //Boucle for


{
System.out.println("Je compte "+i);
}

do {
System.out.println("Je compte "+i); // Boucle do while
i++;
}
while(i<=10);

} ProgrammationOrientée
évènementielle & réseau
Programmation objet-JAVA: RxTel::S3
RxTel: S3
53
} M. OULD BECHIR: mobechir@yahoo.fr
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


V. Structures de contrôle
Exemples: Programmation d’un switch
public class MonSwitch{
public static void main(String[] args)
{
int choix;
double a,b,s,p,d;
System.out.println("Faites votre choix:?");
System.out.println("1: Addition");
System.out.println("2: Multiplication");
System.out.println("3: Division");
System.out.println("4: Sortir");

java.util.Scanner entree = new java.util.Scanner(System.in);


choix=entree.nextInt();

switch (choix)
{
case 1:
System.out.println("Entrez a:");
a=entree.nextDouble();
System.out.println("Entrez b:");
b=entree.nextDouble();
s=a+b;
System.out.println("La somme des deuxProgrammation
chiffres est:" +s);
évènementielle & réseau
Programmation Orientée objet-JAVA: RxTel::S3
RxTel: S3
54
break; M. OULD BECHIR: mobechir@yahoo.fr
M. OULD BECHIR: mobechir@yahoo.fr

27
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


V. Structures de contrôle
Exemples: Programmation d’un switch
case 2:
System.out.println("Entrez a:");
a=entree.nextDouble();
System.out.println("Entrez b:");
b=entree.nextDouble();
p=a*b;
System.out.println("Le produit des deux chiffres est:"+p);
break;
case 3:
System.out.println("Entrez a:");
a=entree.nextDouble();
System.out.println("Entrez b:");
b=entree.nextDouble();
d=a/b;
System.out.println("La division de :" +a + "Par" + b+"est:"+d);
break;
case 4:
System.out.println("Au revoir, merci d'avoir utilisé le programme");
break;
default:
System.out.println("Vous avez rentré une mauvaise valeur!!");
break;
} ProgrammationOrientée
évènementielle & réseau
Programmation objet-JAVA: RxTel::S3
RxTel: S3
55
} } M. OULD BECHIR: mobechir@yahoo.fr
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Les fonctions mathématiques
Package java.lang.Math
 La classe Math Appartient au package java.lang Chargée automatiquement
 Toutes les méthodes de cette classe sont statiques
 pas besoin de créer un objet pour les
appeler

Les variables de classe


 PI représente pi dans le type double ( 3,14159265358979323846 )
 E représente e dans le type double ( 2,7182818284590452354 )
System.out.println(" PI = "+Math.PI);
System.out.println(" E = "+Math.E);

Les fonctions trigonométriques


 Les méthodes sin(), cos(), tan(), asin(), acos(), atan()
 Avec l’angle donné en radians
System.out.println(" Le cosinus de pi est = "+Math.cos(Math.PI));

Programmation Orientée objet-JAVA: RxTel: S3 56


M. OULD BECHIR: mobechir@yahoo.fr

28
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Les fonctions mathématiques
Exemple
public class FoncMaths{

public static void main(String [] args)


{
System.out.println(" Le cosinus de pi est = "+Math.cos(Math.PI));
int a=3;
int b=5;
System.out.println(" Le plus petit est = "+Math.min(a,b));
System.out.println(" Le plus grand est = "+Math.max(a,b));
// La méthode round(double) ajoute 0,5 est retourne la plus grande valeur entière <= au résultat
Double [] t={-0.5, -0.8,-1.8, -1.2, -1.0, 1.0, 1.2, 1.5, 1.8};
for (int i = 0; i < t.length; i++) {
System.out.println("L'approximation de ("+t[i]+") = "+Math.round(t[i])); }
//La méthode floor(double) renvoie l'entier le plus proche
System.out.println("L'entier le plus proche de -1.8 est = "+Math.floor(-1.8));
System.out.println(" 5 au cube = "+Math.pow(5.0, 3.0) );
System.out.println("La racine carrée de 25 = "+Math.sqrt(25.0) );
System.out.println("L'exponentiel de 5 = "+Math.exp(5.0) );
System.out.println("le logarithme de 5 = "+Math.log(5.0) );
//La méthode IEEEremainder(d1, d2) retourne le reste de la division de d1 par d2
System.out.println("Le reste de la division de 10 et 3 est ="+Math.IEEEremainder(10.0, 3.0));
//La méthode random() retourne un nombre au hasard entre 0.0 est 1.0
System.out.println(" un nombre aléatoire = "+Math.random()
Programmation ); RxTel: S3
Orientée objet-JAVA: 57
}} M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets

 Classes
 Identificateurs
 Constructeurs
 Champs et méthodes
 Spécificateurs
 Affectation et comparaison d’objets
 Héritage
 Polymorphisme, Surcharge/Surdéfinition
 Interfaces
 Paquetage

Programmation Orientée objet-JAVA: RxTel: S3 58


M. OULD BECHIR: mobechir@yahoo.fr

29
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
1) Classes
 La notion de classe généralise la notion de type. La classe comporte des
champs (données) et des méthodes.
 La notion d'objet généralise la notion de variable. Un type classe donné
permet de créer (d'instancier) un ou plusieurs objets du type, chaque objet
comportant son propre jeu de données.

Exemple:

class Etudiant { //Le nom de la classe .java


//Le corps de la classe
}

Programmation Orientée objet-JAVA: RxTel: S3 59


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
2) Utilisation d’une classe Constructeurs
 La classe Etudiant permet de créer des objets de type Etudiant
 Les méthodes de la classe Etudiant peuvent être appliquées à ces objets
(instances)
 L’utilisation de la classe et de ses méthodes se fera donc à travers une
instance de cette classe
 Cette utilisation se fera dans une autre méthode (main)
 La déclaration Etudiant et; réserve un emplacement mémoire pour une
référence à un objet de type Etudiant et est une référence
 L’allocation ou la réservation mémoire pour l’objet (instance) et se fait
par l’appel à l’opérateur new : et=new Etudiant()
 Cette instruction, construit un objet de type Etudiant et place sa
référence dans et qui doit avoir été déclaré au préalable
Programmation Orientée objet-JAVA: RxTel: S3 60
M. OULD BECHIR: mobechir@yahoo.fr

30
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
3) Exemple
public class Etudiant{
public String nom, prenom;
public int age,num;

public Etudiant(int parm1, String parm2, String parm3, int parm4)


{
this.num=parm1;
this.nom=parm2;
this.prenom=parm3;
this.age=parm4;
}
public String getNom()
{
return this.nom;

public static void main(String[] args)


{
Etudiant p1=new Etudiant(1,"Mohamed","SIDI",24);
String n=p1.getNom();
System.out.println(n);
System.out.println(p1.num); ProgrammationOrientée
évènementielle & réseau
Programmation objet-JAVA: RxTel::S3
RxTel: S3
61
System.out.println(p1.prenom);}} M. OULD BECHIR: mobechir@yahoo.fr
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
4) Spécificateurs
Les spécificateurs permettent de définir le comportement d’un champ ou
d’une méthode

 final : se place dans la déclaration d'un champ, d'une classe ou d'une


méthode. Il indique que l'élément déclaré ne peut être modifié.

- champ: définit des constantes (final double pi=3.14)


- méthode: interdit la redéfinition de la méthode par héritage
- classe: interdit d’en dériver des sous classes

Programmation Orientée objet-JAVA: RxTel: S3 62


M. OULD BECHIR: mobechir@yahoo.fr

31
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
4) Spécificateurs
 static : indique qu'un élément d'une classe est lié à la classe et non à
un objet particulier (un seul exemplaire)
- champ: sert généralement pour conserver des caractéristiques de la classe
toute entière (constante  static final )
- méthode: indépendante des objets, elle s’applique à la classe
NomDeLaCLASSE.nomDeLaMethode(Arguments)

Les fonctions mathématiques dans l’API Math x= Math.cos(1.4);

NB. La fonction principale de java (public static void main) est static car lorsqu'un programme Java est lancé,
il n'existe a priori aucun objet, donc aucun élément auquel appliquer une méthode. C'est pour cela que les
concepteurs du langage ont décidé que le corps d'un programme serait constitué par une méthode statique :
main.

Programmation Orientée objet-JAVA: RxTel: S3 63


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
4) Spécificateurs
Accès aux champs et méthodes d’une classe

 public: se place dans la déclaration d'un champ, d'une classe ou d'une


méthode. Il indique que l'élément déclaré est accessible de partout

- champ: accessible de partout( cas typique d’une constante)


- méthode: accessible de partout ( méthode utilisable partout)
- classe: accessible de partout

Programmation Orientée objet-JAVA: RxTel: S3 64


M. OULD BECHIR: mobechir@yahoo.fr

32
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
4) Spécificateurs
Accès aux champs et méthodes d’une classe

 private : se place dans la déclaration d'un champ, d'une classe ou d'une


méthode. Il indique que l'élément déclaré est accessible seulement à partir
de la classe elle même

- champ: accessible seulement à partir de la classe elle même


- méthode: accessible seulement à partir de la classe elle même
- classe: accessible seulement à partir de la classe elle même

Programmation Orientée objet-JAVA: RxTel: S3 65


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
4) Spécificateurs
Accès aux champs et méthodes d’une classe

 protected : se place dans la déclaration d'un champ d'une classe. Il


indique que le champ déclaré est accessible seulement à partir du package
et des classes dérivées de la classe du champ

 (rien) : se place dans la déclaration d'un champ d'une classe. Il indique


que le champ déclaré est accessible à partir de toutes les classes du
package

Programmation Orientée objet-JAVA: RxTel: S3 66


M. OULD BECHIR: mobechir@yahoo.fr

33
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
5) Constructeurs
 Un constructeur est une méthode particulière sans type de retour
 Un constructeur porte le même nom que la classe
 Un constructeur permet de construire un objet (instance) de la classe

Type des méthodes de classe


 Les constructeurs
 Les méthodes d’accès (accessor) getXXX : accès aux champs sans modification
 Les méthodes d’altération (mutator) setXXX: modification des champs

Création d’une instance


MaClasse mc=new MaClasse();
Cette instruction, construit un objet de type MaClasse et place sa référence dans mc
Programmation Orientée objet-JAVA: RxTel: S3 67
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
5) Constructeurs

Types de construction
 Par constructeur par défaut
public MaClasse(type1 parm1, type2 parm2,…typen parmn){
champ1=parm1;
champ2=parm2;

champn=parmn;
}

 Par copie
public MaClasse(MaClasse copie){
champ1=copie.champ1;
champ2=copie.champ2;

champn=copie.champn;
}
Programmation Orientée objet-JAVA: RxTel: S3 68
M. OULD BECHIR: mobechir@yahoo.fr

34
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
5) Constructeurs (this )

Dans un programme java, le nom d’un paramètre peut cacher le nom d’un
champ de l’instance
Exemple
public class Etudiant {
String nom;
public Etudiant(String nom) {
}
}
Comment distinguer entre les deux ?  utilisation de this

this: - l’objet sur lequel s’applique la méthode


- l’objet qui est en train d’être construit

Programmation Orientée objet-JAVA: RxTel: S3 69


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
6) Champs et méthodes
Champ
 Un champ est un attribut de la classe
 Un champ est typé
 Un champ possède un comportement

public static final double PI=3.14;

Méthode
 Une méthode est une transformation appliqué sur des champs
 Une méthode est typée (fonction ou procédure)
 Une méthode possède un comportement
public static int Fact(int n); //retour de type entier
public static void initilisation(); //pas de retour
Programmation Orientée objet-JAVA: RxTel: S3 70
M. OULD BECHIR: mobechir@yahoo.fr

35
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
6) Champs et méthodes  Accès
On accède à un champ d’une classe suivant la syntaxe suivante:
Objet A=new objet()
A.methode1();  Applique methode1 sur l’objet A
A.champ1;  Retourne le contenu du champ1 de l’objet A

Etant donnée la classe B héritant de la classe A, on accède à un champ


hérité suivant la syntaxe suivante:
super.champHérité;

Programmation Orientée objet-JAVA: RxTel: S3 71


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
7) Affectation et comparaison d’objets
Affectation
 Soient deux objets O1 et O2

O1=02 // affecte à O1 la référence de O2 donc O1 et O2 désigne le même objet et non pas deux objets de même valeur

Comparaison equals()
Soient trois objets O1 , O2 et O3
Objet O1=new Objet();
Objet O2=new objet(O1);
Objet O3=O1;
System.out.println(O2.equals(O1));  False
System.out.println(O3.equals(O1));  True
System.out.println(O3==O1);  True

Programmation Orientée objet-JAVA: RxTel: S3 72


M. OULD BECHIR: mobechir@yahoo.fr

36
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VI. Classes et Objets
7) Affectation et comparaison d’objets

Comparaison

 Pour les classes qui veulent disposer d’une autre définition de l’égalité, il
faut définir la méthode equals()

public boolean equals(Object o) {


//réécrire le code de la méthode
}
 L’opérateur instanceof(), permet de savoir à quelle classe appartient une
instance
B A=new B()
B instanceof A  true

Programmation Orientée objet-JAVA: RxTel: S3 73


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage

 Classes dérivées
 Classes internes
 Polymorphisme
 Super classes
 Classes abstraites
 Surcharge
 Surdéfinition

Programmation Orientée objet-JAVA: RxTel: S3 74


M. OULD BECHIR: mobechir@yahoo.fr

37
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
1. Concepts
L'héritage est un mécanisme permettant d’élargir les fonctionnalités d’une
classe en se basant sur des fonctionnalités existantes au niveau d’autres
classes.

Une classe B héritant de la classe A, récupérera tous les champs et toutes


les méthodes de la classe A. En plus, elle pourra avoir de nouveaux champs
et méthodes qui lui sont propres.

B est la sous-classe tandis que


A, est la super-classer
On écrit: class B extends A{ }
Programmation Orientée objet-JAVA: RxTel: S3 75
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
2. Exemple

Nom: String Nom: String


Date de naissance: Date Date de naissance: Date
Attributs Bac: String
Note: Integer
Classe: String

DonnerNom():String
DonnerNom ():String DonnerNom():String
DonnerNom():String
Méthodes Ajouter() ChangerNote((N:int
ChangerNote N:int))
EstAdmis((N:int
EstAdmis N:int):
):bool
bool
Ajouter()

Propriétés
Etudiant possède toutes les caractéristiques de Personne
Etudiant possède des champs et des méthodes supplémentaires
Etudiant peut redéfinir, surcharger des méthodes de Personne plus loin

Programmation Orientée objet-JAVA: RxTel: S3 76


M. OULD BECHIR: mobechir@yahoo.fr

38
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
3. Généralisation de l’héritage en JAVA

Propriétés
Toutes les classes en Java héritent (dérivent) de la classe Object
Toute classe qui n'étend(hérite de) pas une autre en utilisant le mot réservé
extends, étend implicitement la classe Object (qui se trouve dans le package
java.lang). Ainsi, toutes les classes Java ont comme premier ancêtre la classe
Object.
 Une classe peut avoir autant de sous-classes que nécessaires
 Une classe peut avoir plus d’une super-classe
 L’héritage est transitif, c'est-à-dire que tout ce qu'une classe a hérité de sa super-
classe, elle va le léguer à ses propres sous-classes

Programmation Orientée objet-JAVA: RxTel: S3 77


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
4. Hiérarchie de classes en JAVA

Programmation Orientée objet-JAVA: RxTel: S3 78


M. OULD BECHIR: mobechir@yahoo.fr

39
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
5. La classe Object
Méthodes
public String toString();
Cette méthode permet d'obtenir une représentation de l'objet sous forme
d'une chaine de caractère Retourne son nom
public boolean equals (Object o);
Cette méthode permet de comparer un objet à l'objet passé en paramètre
pour savoir s'ils sont égaux ou non.
protected Object clone();
Cette méthode permet d'obtenir une copie de l'objet et non pas une copie
de la référence vers l'objet.

Programmation Orientée objet-JAVA: RxTel: S3 79


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
6. Types de classes
 Classe abstraite
Classe incomplète, c’est-à-dire avec des champs et des méthodes, mais
certaines des méthodes ne contiennent pas de code. Le but étant de définir
le comportement général de la classe au niveau d’une classe abstraite et
de spécifier les méthodes dans les sous classes N’est pas instanciable
public class Etudiant_Primaire extends Etudiant{
public Double AfficherMoyenne(){
Exemple return Moyenne/2;
}
public abstract class Etudiant{ }
private Double Moyenne;
public abstract Double AfficherMoyenne(); public class Etudiant_College extends Etudiant{
} public Double AfficherMoyenne(){
return Moyenne;
}
}
Programmation Orientée objet-JAVA: RxTel: S3 80
M. OULD BECHIR: mobechir@yahoo.fr

40
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
6. Types de classes
Classe interne
Il s’agit d’une classe définie à l’intérieur d’une autre classe (conteneur). De
ce fait, elle est dépendante de sa classe conteneur et ne peut être utilisée
que par celle-ci;
L’avantage est que la classe interne, accède de manière transparente aux
attributs et aux méthodes de la classe conteneur. pas de contexte static

Exemple public class Conteneur{


public class Conteneur{ int i=1;
public class Interne{ public class Interne{
} int j=i;
} }
}

Programmation Orientée objet-JAVA: RxTel: S3 81


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VII. Héritage
6. Types de classes
Classe anonyme
C’est comme la classe interne, c’est-à-dire qu’elle est déclarée au sein d’une
classe conteneur , mais elle ne porte pas de nom;
Par conséquent, c’est une classe à usage unique mais qui dérive d’une
autre classe ou implémente une interface

Exemple (Ecouteurs d’évènements)  Cours de programmation évènementielle


JButton b = new JButton("cliquez ici");
b.addActionListener ( new ActionListener () {
public void actionPerformed ( ActionEvent e ) {
System.out.println("un clic");
} } );

Programmation Orientée objet-JAVA: RxTel: S3 82


M. OULD BECHIR: mobechir@yahoo.fr

41
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VIII. Polymorphisme
1. Concepts
C’est une caractéristique essentielle de la POO. Alors que l’héritage
concerne les classes, le polymorphisme concerne les méthodes

2. Types
Surcharge (overloading)
Il s’agit d'utiliser le même nom pour des méthodes différentes dans des
classes différentes ou non
Si les méthodes se trouvent dans la même classe, elles seront distinguer
par leurs arguments
Exemple public class B{ public class C{
public class A{ Public void Afficher() { Public void Afficher() {
Public void Afficher() { } }
} } }
} Programmation Orientée objet-JAVA: RxTel: S3 83
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VIII. Polymorphisme
2. Types
Redéfinition (overriding)
Il s’agit de réécrire dans une classe B la méthode héritée d’une classe A.
Lorsque l’on appelle cette méthode sur une instance de B, c’est la méthode
redéfinie qui sera appliquée et non la méthode de la super-classe
(abstraction)
public class Etudiant_Primaire extends Etudiant{
public Double AfficherMoyenne(){
Exemple return Moyenne/2;
}
public abstract class Etudiant{ }
private Double Moyenne;
public abstract Double AfficherMoyenne(); public class Etudiant_College extends Etudiant{
} public Double AfficherMoyenne(){
return Moyenne;
}
Programmation Orientée}objet-JAVA: RxTel: S3 84
M. OULD BECHIR: mobechir@yahoo.fr

42
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


VIII. Polymorphisme
2. Types
Paramétré (template)
Appelé également généricité, représente la possibilité de définir plusieurs
méthodes de même nom au sein de la même classe mais possédant des
paramètres différents (en nombre et/ou en type).

Exemple
public class Polymorphisme{
int Somme(int a, int b);
Double Somme(Double a, Double b);
Double Somme(Double a, Double b, Double c);
char Somme(char a, char b);

Programmation Orientée objet-JAVA: RxTel: S3 85


M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


IX. Interfaces
1. Concepts
 Une interface représente un contrat passé entre plusieurs classes
(polymorphisme).
 Permet de préciser qu’une classe sait faire telle ou telle méthode
 Les méthodes déclarées dans le contrat(interface) doivent être
implémentées par les classes définissant l’interface
 Une classe peut implémenter une ou plusieurs interfaces
 L'interface possède un niveau d'abstraction supérieur à la classe
abstraite avec:
- des méthodes uniquement abstraites
- aucun champs, à l'exception des constantes.
On déclare une interface comme suit:
Interface interface1{}
On déclare qu’une classe implémente une interface comme suit:
Class A implments
Programmationinterface1,interface2…
Orientée objet-JAVA: RxTel: S3 86
M. OULD BECHIR: mobechir@yahoo.fr

43
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


IX. Interfaces
2. Définition
public interface interface1
{
int const1;
String const2;

public abstract void methode1();
public abstract void amethode2 ();
}

Toutes les classes qui implémente interface1, dispose directement des


constantes const1, const2…

Toutes les classes qui implémente interface1, doivent redéfinir les


méthodes de l’interface methode1, methode2…
Programmation Orientée objet-JAVA: RxTel: S3 87
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


X. Paquetage
1. Les packages de base de Java
 Un package regroupe un ensemble de classes sous un même espace de
nommage Modularité
 Les API de Java sont regroupées en packages
 Les noms des classes:
nom_du-package.nom_du-sous-package.nom_de_la_classe;
import package.subpackage.class; // Pour importer une classe
import package .*; //Pour importer tout le package
Les packages les plus courants:
o java.lang, Classes de support: types de bases, Threads, Exception, Math…
o java.util:, Classes d’utilitaires: système, scanner…
o java.io: entrée/sortie…
o java.swing: interface graphique riche
o java.awt: interface graphique portable
o java.applet: interface vers les applications Web
o java.net: socket (UDP, TCP, multicast), URL, ...
o java.sql: accès homogène aux bases de données
Programmation Orientée objet-JAVA: RxTel: S3 88
M. OULD BECHIR: mobechir@yahoo.fr

44
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


X. Paquetage
2. Réalisation
 Un paquetage porte un nom, soit est soit un simple identificateur, soit une suite
d’identificateurs séparés par un point:
monpackage
monpackage.mon-sous-package.mon-sous-sous-package…

Afin d’inclure une classe dans un package, il faut écrire l’instruction suivante au
début du fichier java contenant la classe
package monpackage;

NB. Cette instruction permet de placer toutes les classes du fichier dans la package monpackage

Afin d’utiliser les classes d’un package, il faut importer le package les contenant:
import monpackage;

NB. Cette instruction ne va pas importer de manière récursive, les classes se trouvant dans les
sous packages de monpackage, il faut donc les importer
import monpackage.monsouspackage.*;
Programmation Orientée objet-JAVA: RxTel: S3 89
M. OULD BECHIR: mobechir@yahoo.fr

Institut Universitaire Professionnel de Nouakchott

Partie II: JAVA


XI. Cas pratiques
A voir en CM & en TD
 Etudiant
 Formes de dessin
 Types de voiture
 Equation du 2nd degré
…

Programmation Orientée objet-JAVA: RxTel: S3 90


M. OULD BECHIR: mobechir@yahoo.fr

45
19/05/2013

Institut Universitaire Professionnel de Nouakchott

Références

 David MORIN: La programmation Orientée Objet: DESS QUASSI, Université d’Angers


 Serge TAHE: Apprentissage du Langage JAVA: ISTIA
 Renault MARLET: Notion de programmation Orientée Objet : LABRI-INRIA
 Serge Rosmorduc: Cours de JAVA: Université Paris 8
 Christian Michel: Cours de programmation Orientée Objet JAVA: Université Louis Pasteur

Programmation Orientée objet-JAVA: RxTel: S3 91


M. OULD BECHIR: mobechir@yahoo.fr

46

Vous aimerez peut-être aussi