Vous êtes sur la page 1sur 60

Programmation Orientée Objet

Chapitre 3: Les bases de la POO

Dr. Mouna Chebbah


Dr. Mouna Chebbah

L2 BC

ESEN
Semestre 1, 2020/2021

1/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Programmation Orientée Objet Méthode
Création d’objets
Encapsulation

La POO est une méthode d’implémentation dans laquelle:


§ les programmes sont organisés sous forme de collections
coopératives d’objets
§ chaque objet représente une instance d’une classe quelconque
§ toutes les classes sont membres d’une hiérarchie de classes
unies à travers des relations d’héritage

2/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Concepts de base de la POO Méthode
Création d’objets
Encapsulation

La POO se base sur les notions clés suivantes:


§ Classe et objets
§ Encapsulation
§ Héritage: détaillé dans le chapitre 4
§ Polymorphisme: détaillé dans le chapitre 4
§ Abstraction: détaillé dans le chapitre 5
3/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Classe Méthode
Création d’objets
Encapsulation

Comme étant une variable, il faut qu’un objet soit déclaré avec son
type

Le type d’un objet est un type complexe (par opposition aux types
primitifs: entier, caractère, . . . ) qu’on appelle une classe

Une classe regroupe un ensemble de données (qui peuvent être des


variables primitives ou des objets) et un ensemble de méthodes de
traitement de ces données et/ou de données extérieures à la classe

4/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Classe Méthode
Création d’objets
Encapsulation

Classe: est une entité


§ représentant un ensemble d’objets ayant la même
représentation mémoire (structure) et les mêmes
comportements
§ définissant cette structure
§ définissant et détenant ces comportements
§ capable de générer des instances

5/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Syntaxe de définition d’une classe Méthode
Création d’objets
Encapsulation

{public/private} |abstract |final| class nomClasse{


z* Corps de la classe*/
}

6/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Syntaxe de définition d’une classe Méthode
Création d’objets
Encapsulation

{public/private} |abstract |final| class nomClasse{


z* Corps de la classe*/
}

§ public/private: la portée. La visibilité par défaut d’une classe


est dans son propre paquetage
§ Mots clés optionnels:
§ abstract: impossibilité à être instanciée
§ final: impossibilité à être dérivée (Voir chapitre suivant)

6/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Syntaxe de définition d’une classe Méthode
Création d’objets
Encapsulation

{public/private} |abstract |final| class nomClasse{


z* Corps de la classe*/
}

§ public/private: la portée. La visibilité par défaut d’une classe


est dans son propre paquetage
§ Mots clés optionnels:
§ abstract: impossibilité à être instanciée
§ final: impossibilité à être dérivée (Voir chapitre suivant)

Exemple
public class Voiture { ... }
6/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Les membres d’une classe Méthode
Création d’objets
Encapsulation

§ Attributs
§ Méthodes
§ Constructeur
§ Accesseurs

7/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Attributs Méthode
Création d’objets
Encapsulation

Les attributs d’un objet sont l’ensemble d’informations se


présentant sous forme de variables et permettant de représenter
l’état de l’objet

8/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Déclaration d’un attribut Méthode
Création d’objets
Encapsulation

{private/protected/public}| static| final|type nomAttribut;

9/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Déclaration d’un attribut Méthode
Création d’objets
Encapsulation

{private/protected/public}| static| final|type nomAttribut;

§ private/protected/public: la portée (voir diapositive n˚7)


§ Mots clés optionnels:
§ static: il s’agit d’une variable de classe
§ final: la variable ne pourra être affectée qu’une seule fois. Une
fois la variable est affactée, sa valeur ne pourra plus changer

9/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Déclaration d’un attribut Méthode
Création d’objets
Encapsulation

{private/protected/public}| static| final|type nomAttribut;

§ private/protected/public: la portée (voir diapositive n˚7)


§ Mots clés optionnels:
§ static: il s’agit d’une variable de classe
§ final: la variable ne pourra être affectée qu’une seule fois. Une
fois la variable est affactée, sa valeur ne pourra plus changer
Exemple: Attribut final
public class Voiture {
private final String NImm; Le numéro d’immatriculation d’une
voiture ne change pas.
private String Marque;
private String Couleur;
private int km; . . . }
9/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
La portée Méthode
Création d’objets
Encapsulation

Portée d’un identificateur:


Zone du texte d’un programme, relativement à l’emplacement de
sa déclaration, où un identificateur est visible

10/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
La portée Méthode
Création d’objets
Encapsulation

Portée d’un identificateur:


Zone du texte d’un programme, relativement à l’emplacement de
sa déclaration, où un identificateur est visible

Specifier Classe Sous-classes Package Partout


private X
protected X X X
public X X X X

10/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
La portée Méthode
Création d’objets
Encapsulation

Portée d’un identificateur:


Zone du texte d’un programme, relativement à l’emplacement de
sa déclaration, où un identificateur est visible

Specifier Classe Sous-classes Package Partout


private X
protected X X X
public X X X X

Qualifieur par défaut: sans modificateur d’accès, seules les classes


du même package peuvent accéder à l’item

10/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Variables de classe (Attribut static) Méthode
Création d’objets
Encapsulation

Variable de classe: variables représentant des propriétés dont la


valeur est partagée par toutes les instances d’une même classe
Exemples:
§ la classe des carrés et la variable nbCotés (tous les carrés ont
le même nombre de cotés)
§ la classe des Tunisiens et la variable président de la republique
Là où elles sont visibles, les variables statiques peuvent être
référencées:
§ simplement par leur nom, au sein des méthodes
§ notation pointée via la classe
§ notation pointée via une instance
Remarque: Une constante est une variable statique et finale
Exemple:
§ private static final float pi=3.14; dans la classe cercle
§ private static float moyenneDeReussite; dans la classe
Etudiant 11/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple 1 Méthode
Création d’objets
Encapsulation

class Tunisien {
private String nom, prénom, adresse;
private int age;
private static String president = “KS” ;
...
Tunsien(){. . . }
}

System.out.println(“Le président des Tunisiens


est”:+Tunisien.president);
Ahmed = new Tunisien();
System.out.println(“Le président des Tunisiens est”:
Ahmed.president);

12/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice Méthode
Création d’objets
Encapsulation

Ecrire une classe Personne qui permet de gérer les individus, cette
classe dispose des attributs suivant:
§ nom
§ prénom
§ âge

13/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Méthodes Méthode
Création d’objets
Encapsulation

Méthode: fonction ou procédure nommée, définie au sein d’une


classe et définissant une propriété fonctionnelle des instances de la
classe. Elle décrit comment une instance de cette classe va réagir à
la réception du message correspondant à son nom

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

14/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Syntaxe en Java Méthode
Création d’objets
Encapsulation

{private/protected/public}| static| abstract |final| typeDeRetour


nomMethode (type param1, type param2, . . . ) throws. . .

15/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Syntaxe en Java Méthode
Création d’objets
Encapsulation

{private/protected/public}| static| abstract |final| typeDeRetour


nomMethode (type param1, type param2, . . . ) throws. . .

§ private/protected/public: la protée de la méthode (voir


diapositive n˚7)
§ Mots clés optionnels:
§ static: méthode de classe
§ abstract: méthode abstraite ou virtuelle pure
§ final: méthode ne pouvant être redéfinie sur une sous-classe
(ne pouvant être spécialisée)
§ typeDeRetour: type de la valeur rendue, si c’est une
procédure il faut mettre void
§ nomMethode: nom de la méthode
§ (type param1, type param2, . . . ): liste des paramètres
§ throws: liste des exceptions signalées 15/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Méthodes de classe (Méthode static) Méthode
Création d’objets
Encapsulation

Méthode définissant une propriété fonctionnelle de la classe (et pas


de ses instances).
Exemple: Méthode de classe MAXVALUE de la classe Integer.
Integer.Max Value(val1, val2);

16/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Envoi de méssage (appel de méthode) Méthode
Création d’objets
Encapsulation

Syntaxe Java: receveur.selecteur(arg1, ..., argn);


Envoi de message: demande à un objet, dit le receveur d’exécuter
une méthode définie dans sa classe par une méthode de nom
selecteur.
Exemples:
§ voit.rouler();
§ int c=voit.rouler(10000);

17/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice (suite) Méthode
Création d’objets
Encapsulation

La classe personne dispose d’une méthode void afficherInfos() qui


affiche les informations d’une Personne. Donnez le code source de
cette méthode.

18/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Constructeur Méthode
Création d’objets
Encapsulation

Méthode particulière, portant le même nom que la classe et


automatiquement invoquée à la création d’une instance.
Un constructeur peut avoir un nombre quelconque de paramètres.
Un constructeur se définit comme une méthode standard portant le
même nom que la classe, mais ne renvoie aucune valeur (même pas
void).
Le rôle du constructeur est de déclarer et de permettre d’initialiser
les données membres de la classe, ainsi que de permettre
différentes actions (définies par le concepteur de la classe) lors de
l’instanciation.

19/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Constructeur simple Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm;
private String Marque;
private String Couleur;
private int km;
Voiture(){ }

20/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Constructeur avec initialisation fixe Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm;
private String Marque;
private String Couleur;
private int km;
Voiture(){
NImm=“1234TU195”;
Marque=“Fiat”;
Couleur=“Rouge”;
km=95000;
}

21/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Constructeur avec initialisation variable Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm;
private String Marque;
private String Couleur;
private int km;
Voiture(String n, String m, String c, int k){
NImm=n;
Marque=m;
Couleur=c;
km=k;
}

22/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple: Classe voiture Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm;
private String Marque;
private String Couleur;
private int km;

public Voiture(String n, int k){


NImm=n;
km=k;
}

public void rouler(int k){//k le km additionnel


km=km+k;
}
}
23/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple: Instantiation et appel de méthode Méthode
Création d’objets
Encapsulation

§ Instantiation: nom donné à l’opération de création d’un objet


à partir du modèle qu’est une classe.
§ Elle se fait en appelant le consutructeur de la classe avec
l’opérateur new.
§ l’opérateur new crée pour le nouvel objet autant
d’emplacements memoire qu’il y a d’attributs dans sa classe.

Exemple
public static void main(String[] args) {
Voiture voit=new Voiture(“1234TU195”,90000);
//constructeur avec initialisation fixe
voit.rouler(10000);//Appel de la méthode rouler
}

24/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Les accésseurs Méthode
Création d’objets
Encapsulation

Deux types de méthodes ont un statut particulier en Java: les


getters et les setters

Afin de respecter le principe d’encapsulation (détaillé dans la


suite de ce chapitre), les attributs non statiques d’une classe sont
déclarés “private”. Afin de pouvoir lire ces attributs, et
éventuellement d’en modifier la valeur, on ajoute à la classe un
getter et un setter pour certains de ses attributs “private”

Le nom de ces deux méthodes est fixé par une convention


universellement suivie

Un getter commence par get, suivi d’un nom, qui est en général le
nom de l’attribut, commençant par une majuscule. Il retourne une
valeur en général du même type que l’attribut associé
25/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Les accésseurs Méthode
Création d’objets
Encapsulation

Le setter associé commence par set, suivi du nom de l’attribut. Il


prend en paramètre un unique argument, du même type que le
type de l’attribut

Si aucun setter n’est associé à un attribut, alors cette propriété est


en lecture seule

Si aucun setter, ni getter ne sont associé à un attribut, alors cet


attribut est utilisé uniquement pour l’implémentation interne de la
classe

26/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple de la classe Personne Méthode
Création d’objets
Encapsulation

public String getNom(){


return Nom;
}
public Personne setCIN(int i) {
CIN = i;
return this;}
ou bien
public void setCIN(int i) {
CIN = i;
}

27/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice (suite) Méthode
Création d’objets
Encapsulation

§ Ajoutez à la classe Personne un constructeur par défaut (un


constructeur simple)
§ Ajoutez à la classe Personne les accésseurs nécéssaires
§ Dans une classe TestPersonne, définissez un main où vous
créez une première personne se nommant “Mohamed
Chouchen” agé de 25 ans

28/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Surcharge de méthodes Méthode
Création d’objets
Encapsulation

La surcharge est la possibilité d’utiliser dans une même classe, le


même nom de méthodes ayant la même sémantique mais avec
différentes signatures.

29/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm, Marque, Couleur;
private int km;

public Voiture(String n, int k){


NImm=n;
km=k;}

public void rouler(int k){//k le km additionnel


km=km+k;}

public int rouler(int k){//k le km additionnel


rouler(k);
return km;}
}
30/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Surcharge de constructeur Méthode
Création d’objets
Encapsulation

public class Voiture {


private String NImm;
private String Marque;
private String Couleur;
private int km;
Voiture(){ }
Voiture(String n){
NImm=n;
}
Voiture(String n, String m, String c, int k){
NImm=n;
Marque=m;
Couleur=c;
km=k; }

} 31/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice (suite) Méthode
Création d’objets
Encapsulation

§ Dans le main créez une deuxième personne à partir de


données saisies par l’utilisteur. Pensez à ajouter un
constructeur adapté à ce besoin dans la classe Personne.
§ Modifiez votre code pour que la saisie des informations soit
faite dans une méthode de la classe personne.

32/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple: Méthode statique Méthode
Création d’objets
Encapsulation

import java.util.Scanner;
public class Voiture {
private final String NImm;
private String Marque;
private String Couleur;
Scanner sc = new Scanner(System.in);

Voiture(String N){ NImm=N;}//constructeur

public static String saisirNImm(){


System.out.println(“Donnez le numéro d’immatriculation de la
voiture”);
String n= sc.nextLine();
return n; }

33/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple: Méthode statique Méthode
Création d’objets
Encapsulation

public static void main(String[] args) {


String n=Voiture.saisirNImm();
Voiture v1=new Voiture(n);
}

34/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Objet Méthode
Création d’objets
Encapsulation

Un objet est une variable (presque) comme les autres. C’est une
entité logicielle:
§ Ayant une identité.
§ Capable de sauvegarder un état c’est-à-dire un ensemble
d’informations 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.
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.
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.

35/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Classes, Objets, Instances Méthode
Création d’objets
Encapsulation

Un objet est caractérisé par:


§ Son identité (OID): valeur unique et invariante qui caractérise
l’objet
§ Son comportement: qui est défini à travers les méthodes
applicables à cet objet et qui caractérisent sa façon d’agir et
de réagir dans son environnement.
§ Son état: qui constitue l’ensemble des valeurs des attributs de
cet objet.
“ą Une classe est un type qui encapsulent données et traitement.
C’est une sorte de moule qui permet ensuite de créer autant
d’instances qu’on veut. Ces instances seront des objets de la classe
auxquelles on pourra effectivement envoyer des messages qui
activeront les méthodes correspondantes.

36/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Instantiation Méthode
Création d’objets
Encapsulation

§ Un objet est instance d’une classe.


§ Objet: instance d’une classe, entité informatique, individuelle,
repérée par une adresse unique, et constituée d’un ensemble
de champs contenant des valeurs.
§ Rappels: Un objet possède autant de champs qu’il y a
d’attribut d’instance définies dans sa classe. Les valeurs de ses
champs représentent l’état courant d’un objet.

37/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple d’instances Méthode
Création d’objets
Encapsulation

38/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple Méthode
Création d’objets
Encapsulation

1. Personne p1 = new Personne();


2. Voiture v1 = new Voiture();
3. Personne [] tab = new Personne[10]; // un tableau de 10
personnes
4. tab[1] = new Personne(); // dans le second emplacement
duquel on stocke une nouvelle Personne

39/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Déstruction des objets Méthode
Création d’objets
Encapsulation

Java dispose d’un ramasse-miette (garbage collector).


Le garbage collector libère automatiquement l’espace mémoire
occupé par tout objet qui n’est plus référencé pendant un certain
temps.

40/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Clonage d’objets Méthode
Création d’objets
Encapsulation

§ L’opérateur “=” ne permet pas des créer des objets


identiques. Il permet seulement de créer des références
identiques pointant sur le même objet.
§ Pour créer des objets identiques il faut utiliser “clone()”
héritée de la classe “Object ” (super-classe de toutes les
classes).

Exemple:
public static void main(String[] args) {
Voiture voit=new Voiture(“1234TU195”,90000);
Voiture v1=voit;//v et voit2 pointent vers le même objet
Voiture v2=voit.clone();//v2 et voit pointent vers 2 objets
différents ayant le même état
}
41/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Comparaison d’objets Méthode
Création d’objets
Encapsulation

§ L’opérateur “ ==” compare les références. Si 2 variables v1


et v2 pointent vers le même objet, v1 ““ v2 retourne true, et
false sinon.
§ La méthode equals() héritée de la classe Object compare les
états (valeurs d’attributs) de 2 objets.

Exemple:
public static void main(String[] args) {
Voiture voit=new Voiture(“1234TU195”,90000);
Voiture v1=voit;//v1 et voit pointent vers le même objet
Voiture v2=voit.clone();//v2 et voit pointent vers 2 objets
différents ayant le même état
if(voit==v1){. . . }; true if(voit==v2){. . . }; false
if(voit.equals(v1)){. . . }; true if(voit.equals(v2)){. . . }; true
}
42/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Mot clé this Méthode
Création d’objets
Encapsulation

§ Le mot clé this, sert à référencer l’instance de l’objet en cours


d’utilisation dans une méthode.
§ this est un objet qui est égale à l’instance de l’objet dans
lequel il est utilisé.
§ Il peut être utile lorsqu’une variable locale ou un paramètre
d’une méthode porte le même nom qu’un attribut.
§ this est aussi utilisé quand l’objet doit appeler une méthode
en se passant lui même en paramètre de l’appel.

43/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple Méthode
Création d’objets
Encapsulation

Exemple:
public class Voiture {
private String NImm;
private String Marque;
private String Couleur;
private int km;

public Voiture(String NImm, int km){


this.NImm=NIMM;
this.km=km;
}
}

44/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Mot clé InstanceOf Méthode
Création d’objets
Encapsulation

Obj instanceof Classe

§ instanceof est un opérateur qui teste si un objet est une


instance d’une classe.
§ Elle retourne true si c’est le cas et false sinon.
§ Elle est géneralement utilisée dans une condition if.

Exemple:
public static void main(String[] args) {
Voiture voit=new Voiture(“1234TU195”,90000);
if(voit instanceof Voiture){
System.out.println(“C’est une voiture”);}
else{System.out.println(“Ce n’est pas une voiture”);}
}
45/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Les packages Méthode
Création d’objets
Encapsulation

§ Définition: Java permet de regrouper les classes en ensembles


appelés packages afin de faciliter la modularité
§ Chaque paquetage porte un nom. Ce nom est soit un simple
identificateur ou une suite d’identificateurs séparés par des
points. L’instruction permettant de nommer un paquetage
doit figurer au début du fichier source (.java) comme suit:
————- Fichier Exemple.java ———-
package nomtest; // 1ere instruction
public class Exemple{// suite du code ...}
————- Fin du Fichier —————-

46/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Les packages Méthode
Création d’objets
Encapsulation

§ Ainsi par cette opération la classe Exemple est assignée au


paquetage nomtest.
§ Si l’instruction package était absente du fichier, alors c’est le
paquetage par défaut qui est pris en considération. Ainsi la
classe du fichier va appartenir au paquetage par défaut.
§ Utilisation: Lors de l’instanciation d’un objet d’une classe
donnée, le compilateur va chercher cette classe dans le
package où elle a été appelée, nous dirons que cette recherche
a eu lieu dans le paquetage par défaut même si ce dernier
porte un nom.

47/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Utilisation d’une classe d’un autre package Méthode
Création d’objets
Encapsulation

Pour instancier ou utiliser une classe appartenant à un autre


package, il faut:
§ mentionner le chemin complet d’accès à la classe :
Exemple:
NomPackage.UneAutreClasse mm = new
NomPackage.UneAutreClasse();
§ importer les paquetages utiles en utilisant l’instruction import
comme suit:
————- Fichier Test.java ————
import NomPackage.UneAutreClasse;
public class Test{ . . .
UneAutreClasse mm = new UneAutreClasse();. . . }
—————-Fin Fichier—————–
§ importer tout le package en entier avec import NomPackage.*;
afin d’utiliser toutes classes se trouvant dans ce package.
48/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exemple de packages java Méthode
Création d’objets
Encapsulation

java.applet Classes de base pour les applets


java.awt Classes d’interface graphique AWT
java.io Classes d entrées/sorties (flux, fichiers)
java.lang Classes de support du langage
java.math Classes permettant la gestion de grands nombres.
java.net Classes de support réseau (URL, sockets)
Classes pour les méthodes invoquées à partir de
java.rmi
machines virtuelles non locales.
java.security Classes et interfaces pour la gestion de la sécurité.
java.sql Classes pour l’utilisation de JDBC.
Classes pour la manipulation de textes, de dates
java.text
et de nombres dans plusieurs langages.
java.util Classes d utilitaires (vecteurs, hashtable)
javax.swing Classes d interface graphique

49/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Associations entre classes Méthode
Création d’objets
Encapsulation

Relation d’association: relation spécifiant qu’un objet, est


sémantiquement connecté, à un autre objet indépendant.
Une association (emploie) entre deux sortes d’objets peut être
représentée de differentes manières:
§ Une classe (Emploi) et deux attributs: employeur de type
Emploi dans la classe Compagnie et employé de type
Emploi dans la classe P ersonne.
§ Deux attributs, attention à la gestion de l’inverse.
Exemple:
§ Classe Personne
employeur : Compagnie
§ Classe Compagnie
employés : collection de Personnes
§ Un seul des deux attributs: pas de problème de gestion de
l’inverse mais problème de navigabilité.
50/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Encapsulation Méthode
Création d’objets
Encapsulation

L’encapsulation désigne le principe de regroupement des


§
données et du code qui les utilise au sein d’une même unité
(classe).
§ Le principe d’encapsulation est utilisé afin de protéger
certaines données des interférences extérieures en forçant
l’utilisateur à utiliser les méthodes définies pour manipuler les
données.
§ L’encapsulation est le faite qu’un objet renferme ses propres
attributs et ses méthodes.
§ Les détails de l’implémentation d’un objet sont masqués aux
autres objets du système à objets.
§ On dit qu’il y a encapsulation de données et du comportement
des objets.
=ą L’encapsulation empêche que certaines propriétés ne soient
manipulées depuis l’extérieur de la classe
51/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice Méthode
Création d’objets
Encapsulation

Soit les classes suivantes:

52/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020
Classe
Attribut
Exercice Méthode
Création d’objets
Encapsulation

Tout en respectant le principe de l’encapsulation et en ajoutant les


getters et setters nécéssaires;
1. Donnez le code source de la classe Date
2. Donnez le code source de la classe Contrat sachant que le
numero du contrat (numContrat) est un numéro séquentiel
qui s’incrémente automatique à chaque nouvelle instanciation
de la classe Contrat
3. Donnez le code source de la classe Employe
4. Dans votre programme principal, créez un employé “Mohamed
Besbes” , habitant à tunis ayant un numéro de CNSS
“TN344262” ayant le contrat de type CDD de numéro 1 qui a
commencé le 01/01/2019 et finira le 31/12/2020
5. Sachant, que “Mohamed Besbes” a rompu son contrat pour
signer un autre CDD à partir du 01/11/2019 juqu’ au
31/12/2024; mettez-à-jour ces informations
53/53
Chapitre 3 - Définition de Classe et Construction d’Objets, M. Chebbah Semestre 1, 2020

Vous aimerez peut-être aussi