Vous êtes sur la page 1sur 20

Université de Sciences, de Technologie et de Médecine de Nouakchott

Faculté de Sciences et Techniques


Département de Mathématiques-Informatique

L2 Informatique – S4

Programmation Orientée Objets


Java

Mohamed Lamine Diakité

Année universitaire 2012/2013

Plan du Cours
Introduction aux concepts de l’approche orientée objets
Types de données en java
Les structures itératives et conditionnelles
Classe java
déclaration classe, constructeur d’une classe, attributs d’une classe
Création des objets
Les modificateurs d’accès (public, private, protected,…)
Les méthodes
déclaration , surcharge, redéfinition d’une méthode
Création et utilisation des packages
Les variables de classe & les constantes (static-final)
L’héritage en java
Les classes abstraites et les interfaces
Présentation de quelques packages prédéfinis de java
Les entrées et sorties
Manipulation des chaînes de caractères
Tableaux et collections de données
La gestion d’erreurs (les exceptions)
Les classes internes
Les interfaces graphiques

1
Partie I
Introduction aux concepts de l’Approche
Orientée Objets

I. Introduction aux concepts de l’Approche Orientée Objets (1) …

Objectifs de la POO :
• Conception de l’organisation de grands projets informatiques autour d’entités précisément structurées (objets)
• Amélioration de la sûreté des logiciels en gérant l’accès aux données sensibles (encapsulation)
• Simplifier la réutilisation de code grâce à l’extension des objets existants (héritage) et partage des méthodes
(polymorphisme)

Les concepts de l’OO :


• Notion d’Objet : C’est une unité logique (ou une entité) manipulée par un langage (OO)
Il est défini par :
1. Une identité qui permet de distinguer les objets entre eux, chaque objet a une existence concrète
2. Un état interne représenté par des attributs (ou variables) auxquels des valeurs sont affectées
3. Un comportement défini par des méthodes modifiant les états.

• Notion de classe: Elle regroupe l’ensemble des objets ayant en commun les mêmes caractéristiques

2
I. Introduction aux concepts de l’Approche Orientée Objets (2)…
Exemple de classe
Classe Personne

Personne

NCIN : entier
Nom : chaine de caractères
Les Attributs
Date Naissance : date
Taille : réel

QuelNom() : chaine de caractères


Les méthodes QuelleDate() : date
(comportement) Grandir(réel)

LaPersonne1 est un objet de la classe Personne


Objet
LaPersonne1 est une instance de la classe Personne
LaPersonne1
Créer un objet = instanciation
NCIN=44556677
Nom = Med Ali
Date Naissance=12/11/1994
Taille = 1,70 Affectation des valeurs aux attributs
5

I. Introduction aux concepts de l’Approche Orientée Objets (3)…


Les concepts de l’OO :
• Méthode: Elle contient le code définissant le comportement de l’objet

• Encapsulation: C’est un mécanisme de protection correspondant au fait que des champs et des méthodes
privées ne soient accessibles par l’utilisateur d’une classe que par certaines méthodes publiques
(exemple des données privées)
• Héritage: Il permet de redéfinir une nouvelle classe à partir d’une classe existante.

Extensibilité de la classe existante


La sous-classe
Hérite les attributs et les comportements de la classe mère

Éviter de redéfinir les méthodes et les attributs hérités


Ajout des comportements spécifiques aux objets de la sous-classe
Modifier certains comportements dans la sous-classe

3
I. Introduction aux concepts de l’Approche Orientée Objets (4)…
Exemple d’héritage
Personne Classe existante = classe mère

NCIN : entier
Nom : chaine de caractères
Date Naissance : date
Taille : réel

QuelNom() : chaine de caractères


QuelleDate() : date
Grandir(réel)

Employé Etudiant
DateEmbauche :date Matricule :entier
Service: chaine de caractères classe: chaine de caractères
Salaire:entier NomFac:chaine de caractères
Tél:entier MoyenneG: réel
QuelleDteEmbauche():date QuelleMoyenne :réel
QuelSalaire() :entier Quelleclasse: ch.de caractères
ModifMoy(réel)
Les classes Employé et Etudiant = Sous-classes de la classe Personne 7

I. Introduction aux concepts de l’Approche Orientée Objets (5)…


Les concepts de l’OO :
• Polymorphisme:

Capacité de lier l’objet à la bonne méthode lors de la compilation


Les objets des sous-classes sont vues comme des objets de la classe mère de manière transparente

4
I. Introduction aux concepts de l’Approche Orientée Objets (5)…
Les concepts de l’OO :
• Polymorphisme:

Personne
Employé
NCIN : entier DateEmbauche :date
Nom : chaine de caractères Service: chaine de caractères
Date Naissance : date Salaire:entier Sous-classe
Taille : réel Tél:entier de la classe Personne

QuelNom() : chaine de caractères QuelleDteEmbauche():date


QuelleDate() : date QuelSalaire() :entier
Grandir(réel)

La méthode est-elle présente


dans la sous-classe?

MonEmployé
DateEmbauche :15/10/2012
Service: Comptabilité MonEmployé.QuelNom()
Salaire:180000
Tél:22 33 44 55
Objet de la sous-classe 9
MonEmployé

I. Introduction aux concepts de l’Approche Orientée Objets (5)…


Les concepts de l’OO :
• Polymorphisme:

Personne
Employé
NCIN : entier DateEmbauche :date
Nom : chaine de caractères Service: chaine de caractères
Date Naissance : date Salaire:entier Sous-classe
Taille : réel Tél:entier de la classe Personne

QuelNom() : chaine de caractères QuelleDteEmbauche():date


QuelleDate() : date QuelSalaire() :entier
Grandir(réel)

Sinon chercher dans la


Classe-mère

MonEmployé
DateEmbauche :15/10/2012
Service: Comptabilité MonEmployé.QuelNom()
Salaire:180000
Tél:22 33 44 55
Objet de la sous-classe 10
MonEmployé

5
Partie II
Types de données en java

II. Types de données en java

Deux types de données

Types primitifs

Type Description (codage)

byte Entier signé sur 1 octet (8 bits)

boolean Booléen su 1 bit (true/ false)

char Caractère sur 2 octets (codage Unicode)

short Entier signé sur 2 octets

int Entier signé, 4 octets

long Entier signé sur 8 octets

float (norme IEEE 754) - flottant sur 4 octets

double (norme IEEE 754) - flottant sur 8 octets

Types objets

String (chaîne de caractères), etc.


Tous les types primitifs ont leur équivalent en objets A voir plus loin… 12

6
II. Types de données en java

Types primitifs

Déclaration
int x,y;
char c;
boolean rep;

Initialisation

Possibilité de d’initialiser les variables au moment de leur déclaration

int x,y;
int x=5,y=12; x=5;
char c=’Y’; y=12;
boolean rep=true; char c;
c=’Y’
boolean rep;
rep=true;

13

II. Types de données en java

Conversion de types

14

7
II. Types de données en java

Transtypage (le cast)

Transformation vers un autre type


Exemple

int i=16;
byte b=(byte)i;// de 32 bits vers 8 bits
i=(int)15.575; // de flottant vers entier; i ne contient que des entiers
char c=’a’;
i=’c’; // de 16 bits vers 32 bits

Peut occasionner parfois une perte d’information


int i=10000;
byte b=(byte)i; // b ne pourra contenir plus de 127 si non signé

15

II. Types de données en java

Les opérateurs

Sur les entiers et réels

Sur les entiers

Sur les entiers et réels

16

8
II. Types de données en java

Les opérateurs

A utiliser surtout la méthode equals( )


lors de la comparaison des chaînes de caractères

Sur les booléens

17

Partie III
Structures de contrôle conditionnelle
et itératives

9
III. Structures de contrôle

Conditionnelles

19

III. Structures de contrôle


A choix multiples
switch identificateur switch identificateur
{ {
case valeur1 : instructions1; case valeur1 : instructions1;break;
case valeur2 : instructions2; case valeur2 : instructions2;break;
case valeur3 : instructions3; case valeur3 : instructions3;break;
…. ….
default : instruction par défaut ; default : instruction par défaut ;
} }
Si les instructions doivent s’exécuter de façon exclusive
Alors utiliser l’instruction break pour sortir de la structure
Exemple
int NumMois;
switch (NumMois)
{
case 1: System.out.println(’’Janvier’’);break;
case 2 : System.out.println(’’Février’’);break;
case 3 : System.out.println(’’Mars’’);break;
….
case 12 : System.out.println(’’Décembre’’);break;
default : System.out.println(’’Ce n’est pas un mois!!!’’);
} 20

10
III. Structures de contrôle

Itératives

21

III. Structures de contrôle

Itératives

22

11
III. Structures de contrôle

Itératives

Si test non vrai à la rentrée de la boucle

23

III. Structures de contrôle

Itératives

continue

for(int i=1;i<12;i++)
2
{ 4
if(i%2==0) 6
System.out.println(’’Valeur de i non paire = ’’+i); 8
else 10
continue;
}

break
for(int i=1;i<12;i++)
1
{ 2
if(i==8) 3
break; 4
else 5
System.out.println(’’Valeur de i = ’’+i); 6
} 7

24

12
Partie IV
Classe Java et création d’Objets

IV. Classe Java et création d’objets

Classe java
Une classe java (type complexe) est constituée:
• d’attributs
• d’un ou de plusieurs constructeurs
• de méthodes

Constructeur d’une classe


Comme une fonction avec des arguments ayant le même nom que la classe
Permet d’initialiser les attributs (variables) au moment de la création des objets
Toute classe java possède au moins un constructeur avec des arguments si défini
Si aucun constructeur n’est défini explicitement, alors un constructeur sans arguments
par défaut est associé à la classe
Il a le même nom que la classe

26

13
IV. Classe Java et création d’objets
Constructeur d’une classe

Exemple public class Rectangle { // Nom de la classe


int Longueur, Largeur;
public Rectangle(int Lo, int La){
Rectangle
Longueur=Lo;
Longueur : entier Largeur=La;
Largeur: entier }
int Perimetre( ){
Perimetre ( ) : entier
return (Longueur+Largeur)*2;
Surface( ) : entier
}
int Surface( ){
return Longueur*Largeur;
}
}

27

IV. Classe Java et création d’objets


Constructeur d’une classe

Exemple public class Rectangle {


int Longueur, Largeur; Constructeur de la classe

public Rectangle(int Lo, int La){


Rectangle
Longueur=Lo;
Longueur : entier Largeur=La;
Largeur: entier }
int Perimetre( ){
Perimetre ( ) : entier
return (Longueur+Largeur)*2;
Surface( ) : entier
}
int Surface( ){
return Longueur*Largeur;
}
}

Les arguments du constructeur sont Lo et La

28

14
IV. Classe Java et création d’objets
Constructeur d’une classe

Exemple public class Rectangle {


int Longueur, Largeur;
public Rectangle(int Lo, int La){
Rectangle
Longueur=Lo;
Longueur : entier Largeur=La;
Largeur: entier }
int Perimetre( ){
Perimetre ( ) : entier
return (Longueur+Largeur)*2;
Surface( ) : entier
}
int Surface( ){
return Longueur*Largeur;
}
}

Les 2 méthodes

29

IV. Classe Java et création d’objets


Structure générale d’une classe

class NomClasse {
//déclaration d’attributs
Type NomAttributs;
//Constructeurs de la classe
public NomClasse(arguments){
//instructions d’initialisation
}
//Méthodes de la classe
TypeRetour NomMethode1(arguments){
//instructions
}
….
TypeRetour NomMethode2(arguments){
//instructions
}
}
30

15
IV. Classe Java et création d’objets
Structure générale d’un programme java

Méthodes
La méthode main( ) permet
d’exécuter le programme après
compilation

Le nom de la classe doit porter le nom du fichier Classe principale (public)


nom_prg.java
31

IV. Classe Java et création d’objets


Création d’objets

La création d’un objet à partir d’une classe est appelée une instanciation (objet=instance de la classe)
Nécessite l’appel du constructeur
Créer un objet:

• Déclaration : définit le nom et le type de l’objet (vaut null si seulement déclaré

• Création et allocation de la mémoire par l’appel du constructeur

Reserve la mémoire et initialise les objets


Exemple

Rectangle
MonRectangle
Longueur : entier
Largeur: entier Longueur : 25 Rectangle MonRectangle =
Largeur: 15 new Rectangle(25,15);
Perimetre ( ) : entier
Surface( ) : entier

L’objet de Rectangle
32

16
IV. Classe Java et création d’objets
Exercices

1. Un point du plan est défini par ses coordonnées


abscisse et ordonnée (x,y). Après avoir identifié les
attributs de la classe Point, écrire la classe Point ainsi
que son constructeur.
2. Créer un objet Point de coordonnées (15,10).
3. On se propose de définir un rectangle par la
connaissance des coordonnées de ses points supérieur
gauche et inférieur droit (Pg et Pd). Ecrire la classe
Rectangle ainsi que son constructeur en précisant au
préalable ses attributs.
4. Créer un objet Rectangle dont les points supérieur
gauche et inférieur droit ont respectivement pour
coordonnées (20,15) et (30,5).

33

Partie V
Les modificateurs d’accès

17
V. Les modificateurs d’accès
Accessibilité des membres d’une classe à une autre classe

Membres d’une classe = attributs + méthodes

On a 4 spécificateurs d’accès :
• public : les membres publics sont tous visibles
• protected : ils ne sont visibles que par les classes filles ou de même package
• private : ils ne sont pas visibles
• ’’friendly’’ (sans spécificateur d’accès), les membres ne sont visibles que par les
classes du même package.

Le spécificateur doit se placer devant chaque membre


Exemple
public int x;
private float y;
public void MaMethode(){

} 35

Partie VI
Les Méthodes

18
VI. Les méthodes
Déclaration de méthodes
Les méthodes décrivent les traitements réalisés par la classe
Elles forment l’interface permettant de manipuler les objets
Elles sont protégées par des droits d’utilisation public, private, protected, final, abstract
Elles retournent le résultat du traitement (return objet ou type primitif) ou rien (void)
Prennent une liste de variables comme arguments (Type var1, Type var2, …, Type varn)

Syntaxe : DroitAcces TypeRetour NomMethode(listeArgument){


TypeRetour V;
// Instructions de traitement

return V;
}
Ou bien
DroitAcces void NomMethode(listeArgument){
// Instructions de traitement

} 37

VI. Les méthodes


Signature d’une méthode

Correspond à une déclaration de méthode :{Type de retour, nom, liste de paramètres}


Surcharge d’une méthode

• Création d’autres méthodes avec le même nom


• Nécessité de changer la signature
- Changement du type de retour ne suffit pas
- Changement du type d’au moins un paramètre
- Ajout/Suppression des paramètres à la liste de paramètres

Exemple de surcharge
int somme(int a, int b) { return a + b; }
float somme(float a, float b) { return a + b; }
int somme(int a, int b, int c) { return a + b + c; }

float somme(int a, int b) { return a + b; } Erreur!!!


Redéfinition d’une méthode
Conserver la déclaration d’une méthode dans la classe fille en changeant juste le code
38

19
Partie VII
Création et utilisation des packages

39

VII. Création et utilisation des packages


Utilisation d’un package

Création d’un package


• Doit être la première instruction dans un programme java
package Nom.Package; • Entraîne la création du répertoire :
Dossier de travail/Nom/Package
40

20

Vous aimerez peut-être aussi