Instantiation de la classe Cercle
Cercle c1 = new Cercle(); // construction d'un Cercle
Cercle c2 = new Cercle (3.0, 5.5, 9.4);
Cercle c3 = new Cercle (8.0);
Appel au constructeur
Cercle sans paramètres
les constructeurs servent à
initialiser les objets
c1
c1 : Cercle
x = 0.0
y = 0.0
rayon=
1.0
c2
c2 : Cercle
x = 3.0
y = 5.5
rayon=
9.4
c3
c3 : Cercle
x = 0.0
y = 0.0
rayon=
8.0
"surcharge des méthodes" :
méthodes portant le nom mais
avec des d'arguments différents.
// construction d'un Cercle de rayon 6.5
Cercle monCercle = new Cercle(6.5);
monCercle.x = 1.0;
monCercle.y = 1.0;
Exemple :
Utilisation des objets
Accès aux attributs
Syntaxe :
nomObjet.nomAttribut
Le point marque la séparation entre le nom de l'objet et le nom de
l'attribut de cet objet
Attention, erreur !!
Référence erronée car
l'attribut x est private
C'est un "bouton" de la "télécommande"
Utilisation des objets
Accès aux méthodes
Syntaxe :
nomObjet.maMéthode(paramètres)
Le point marque la séparation entre le nom de l'objet et le nom de
la méthode de cet objet
Cercle c = new Cercle(-4.0,1.0,5.5);
c.affiche() ;
double s = c.surface();
Exemple :
Références correcte car
les méthodes affiche() et
surface() sont public
Notez dans l'exemple qu'il
n'y a pas des arguments
Une méthode opère implicitement
sur une instance de la classe.
C'est un "envoi de message"
Encapsulation
• Protection qui permet de contrôler la visibilité d'un attribut ou
d'une méthode.
• Quatre niveaux de protection : public, private, protected et
package.
• L'encapsulation permet de protéger l'objet de toute malveillance
externe. Pour cela, la plupart du temps, il faut interdire l'accès
direct aux attributs et passer par les méthodes qui modifient
éventuellement les attributs.
Ainsi dans l'exemple de la classe Cercle les
attributs sont private et les méthodes public.
Point
x
y
translater( )
Cercle
-x
-y
-rayon
+circonference()
+surface()
+affiche()
attribut privé
méthode publique
Encapsulation
Modificateur
d'accès Visibilité des attributs et méthodes
public Accessible par tous et n'importe où. Il s'agit du
niveau le plus bas de protection.
private Accessible uniquement dans les méthodes de la
classe. Niveau le plus fort de protection. Les attributs
sont généralement déclarées comme privées.
protected accessible dans les méthodes de la classe et des ses
sous-classes (celles qui héritent).
Visibilité par défaut : accessible par les classes du
même package. Aucun des mot clé modificateur n'est
utilisé.
Encapsulation
Exemple "Cercle"
Imaginez que nous souhaitons d'accéder, en consultation
seulement, à l'attribut rayon. Comment faire ?
Cercle figureUn = new Cercle();
double diametre = figureUn.rayon * 2;
Erreur !!
rayon est
private
Solution
Cercle figureUn = new Cercle();
double diametre = figureUn.getRayon() * 2;
méthode publique pour
obtenir le rayon d'un cercle