Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1 Introduction
Chapitre 2 Objets et Classes
Chapitre 3 Encapsulation et Surcharge
Chapitre 4 Héritage et Polymorphisme
Chapitre 5 Classes abstraites et Interfaces
Chapi
Chapitre 6 Les collections
tre 5
Chapitre 7 Les exceptions
• Notion de package
L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles
pour les autres objets.
L'encapsulation est une manière de définir une classe de telle sorte que ses attributs
ne puisse pas être directement manipulés de l'extérieur de la classe, mais
seulement indirectement par l'intermédiaire des méthodes.
Les attributs et les méthodes sont précédés lors de la déclaration par l’un
des modificateurs de visibilité suivants : « public », « private », « protected »
et Néant.
Une méthode, classe ou attribut sont déclarés comme publiques « public »
s’ils doivent être visibles à l’intérieur et à l’extérieur quelque soit leur
package.
Une méthode, classe ou attribut ne sont pas précédés par un modificateur
de visibilité explicite (Néant) ne vont être visibles qu’à l’intérieur de même
package. C'est-à-dire seules les classes de même package peuvent accéder
aux attributs et méthodes de classes « amies ».
Une méthode ou attributs définis comme étant privés « private » s’ils sont
accessibles uniquement par les méthodes de la classe en cours. Ils ne sont
pas accessibles ailleurs.
L’attribut public
public class A {
public int x;
…
}
L’attribut private
public class A {
private int y;
…
}
public class A {
… int z ;
}
La variable default n'est accessible que depuis les classes faisant partie
du même package.
18/09/2023 POO 2eme SI 13
Encapsulation des attributs
L’attribut protected
public class A {
…
protected int w ;
}
class C extends A {
class B { A a=new A(); class D {
A a=new A(); a. w = t ; A a=new A();
a.w= t ; this.w = t; a. w = t ;
} } }
Méthode public
public class A {
public void meth1()
{ }
…
}
Méthode private
public class A {
private void meth2 ()
{ }
…
}
public class A {
void meth3 () {}
…
}
Méthode protected
public class A {
Protected void meth4()
{}
…
}
class B {
class C extends A { class D {
A a=new A();
A a=new A(); A a=new A();
a.meth4() ; a.meth4() ; a.meth4() ;
}
this.meth4() ; }
}
La méthode 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.)
•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
Le setter et le getter doivent être déclarés public
public class Produit {
private float prix;
public void setPrix(float prix)
{
this.prix=prix; }
public float getPrix()
{ return prix; } }
18/09/2023 POO 2eme SI 19
Surcharge des méthodes
class Affiche {
void print (int i) { System.out.println ("entier = "+i); }
void print (float f) { System.out.println ("réel = "+f); }
void print (String s) { System.out.println ("chaîne de
caractères =" +s); }
}
class TestAffiche {
public static void main (String []args){
Affiche a = new Affiche() ;
a.print(4.2f); // Affiche ?
a.print("hello"); // Affiche ?
a.print(4); // Affiche ? } }
1. Créer une classe Temps qui contient 3 attributs entiers privés : heure, minute, seconde
2. Définir les constructeurs suivants en utilisant chaque fois que c’est possible la référence
this.
Temps (int heure)
Temps (int heure, int minute)
Temps (int heure, int minute, int seconde)
3. Ecrire une méthode affiche() qui affiche le temps sous la forme suivante :
"Il est ……..heures ……..minutes……..seconde’’ .
4. Ecrire la méthode main qui permet d’utiliser les trois types de constructeur suivis de la
méthode affiche() et qu’obtient-on à l’exécution ?