Académique Documents
Professionnel Documents
Culture Documents
Encapsulation
Encapsulation
Encapsulation
Plan du cours
Introduction
Classe et objet
Encapsulation
Héritage
Polymorphisme
Exceptions
Interface et Collection
Plan du cours
Encapsulation
Notion de package
Encapsulation des classes
Encapsulation des attributs/méthodes
Les attributs et méthodes static
Définition d’encapsulation
Encapsulation -1-
C’est quoi un package?
ClassA
Déclaration d’un package
ClassB
package pack1;
Package 2
Import d’un package
ClassC
import pack2.ClassC;
ClassD
import pack2.*;
Package 21
•Importe toutes les classe du package 2 (ClassC et ClassD)
ClassE •N’importe pas les classes du sous package 21 (ClassE)
Encapsulation -2-
Encapsulation des classes 1/3
Package 1 Package 2
class A class C
class B class D
Encapsulation -3-
Encapsulation des classes 2/3
La classe public
Package 1 Package 2
class A class C
class B class D
public class A La classe public est visible depuis n’importe quelle classe du projet
Encapsulation -4-
Encapsulation des classes 3/3
La classe default
Package 1 Package 2
class A class C
class B class D
class A La classe default est visible seulement par les classes de son package.
Encapsulation -5-
Encapsulation des attributs 1/5
L’attribut public
Package 1 Package 2
class A class C
public int x;
private int y;
int z;
protected w; class B class D
public int x La variable public est visible par toutes les classes
Package 1 Package 2
class A class C
public int x;
private int y;
int z;
protected w; class B class D
private int y La variable private n'est accessible que depuis l'intérieur même
de la classe.
public class A { class B { class C extends A { class D {
private int y; A a=new A(); A a=new A(); A a=new A();
… int t=a. y ; int t=a. y ; int t=a. y ;
} … … …
} } }
Encapsulation -7-
Encapsulation des attributs 3/5
L’attribut default
Package 1 Package 2
class A class C
public int x;
private int y;
int z;
protected w; class B class D
int y La variable default n'est accessible que depuis les classes faisant
partie du même package.
public class A { class B { class C extends A { class D {
private int y; A a=new A(); A a=new A(); A a=new A();
… int t=a. y ; int t=a. y ; int t=a. y ;
} … … …
} } }
Encapsulation -8-
Encapsulation des attributs 4/5
L’attribut protected
Package 1 Package 2
class A class C
public int x;
private int y;
int z;
protected w;
class B class D
protected int y La variable protected est accessible uniquement aux classes d'un
package et à ses sous-classes (même si elles sont définies dans
un package différent.)
public class A { class B { class C extends A { class D {
private int y; A a=new A(); A a=new A(); A a=new A();
… int t=a. y ; int t=a. y ; int t=a. y ;
} … … …
} } }
Encapsulation -9-
Encapsulation des attributs 5/5
Package 1 Package 2
class A class C
public int x;
private int y;
int z;
protected w;
class B class D
class A class C
public void meth1(){};
private void meth2(){};
void meth3(){};
protected void meth4(){};
class B class D
public void meth1() La méthode public est visible par toutes les classes
class A class C
public void meth1(){};
private void meth2(){};
void meth3(){};
protected void meth4(){};
class B class D
private void meth2() La méthode private n'est accessible que depuis l'intérieur
même de la classe.
class A class C
public void meth1(){};
private void meth2(){};
void meth3(){};
protected void meth4(){};
class B class D
void meth3() La méthode default n'est accessible que depuis les classes
faisant partie du même package.
class A class C
public void meth1(){};
private void meth2(){};
void meth3(){};
protected void meth4(){};
class B class D
class A class C
public void meth1(){};
private void meth2(){};
void meth3(){};
protected void meth4(){};
class B class D
Variable d’instance:
Etudiant [class]
Chaque instance de la classe possède
ses propres valeurs des variables.
Class Etudiant{
String nom;
Encapsulation -17-
Les attibuts static 2/4
Variable d’instance:
Utilisation
On invoque les variables d’instance avec le nom de l’instance
Encapsulation -18-
Les attibuts static 3/4
Variable de classe:
•n'appartient pas à une instance particulière, elle
appartient à la classe. Etudiant [class]
•est partagée par toutes les instances de la classe
nbrEtudiants
Class Etudiant{ 0
3
2
1
String nom;
static int nbrEtudiants;
Etudiant [instance]
Etudiant(String nom){ nom Etudiant [instance]
Ahmed
this.nom=nom; nom
Fatma
nbrEtudiants++;
}
Etudiant [instance]
} nom
Marwa
Etudiant etud1 = new Etudiant (“Ahmed");
Etudiant etud2 = new Etudiant (“Marwa");
Etudiant etud3 = new Etudiant (“Fatma");
Encapsulation -19-
Les attibuts static 4/4
Variable de classe:
Utilisation
On invoque les variables static avec le nom de la classe
class Etudiant{
String nom;
static int nbrEtudiants; class Test{
public static void main(String[] args){
Etudiant(String nom){
this.nom=nom; System.out.println(Etudiant.nbrEtudiants);
nbrEtudiants++;
} }
} }
Encapsulation -20-
Les méthodes static 1/2
Encapsulation -21-
Les méthodes static 2/2
Encapsulation -22-