Académique Documents
Professionnel Documents
Culture Documents
S.I.C
Plan
Notion d’objets
Encapsulation
Constructeur
Attributs et méthodes
Accesseurs, mutateurs
Méthode toString
2
Notion d’objets
Un objet modélise toute entité identifiable, concrète ou abstraite, manipulée
par l’application logicielle.
Une chose tangible ex: ville, véhicule, personne.
Une chose conceptuelle ex: date, réunion, planning de réservation.
Un objet peut être vu comme une entité cohérente rassemblant des données
et du code travaillant sur ses données.
Une classe peut être considérée comme un moule à partir duquel on peut
créer des objets.
En fait, on considère plus souvent que les classes sont les descriptions
des objets, lesquels sont des instances de leur classe.
3
Concept d’encapsulation
L’utilisateur d’une classe n’a pas forcément à savoir de quelle façon sont
structurées les données dans l’objet, cela signifie qu’un utilisateur n’a pas à
connaître l’implémentation.
4
Exemple : compte en banque
class Compte
{
private String titulaire;
private int numeroCompte; Attributs Les valeurs caractéristiques de l'objet
private double solde;
private OK
protected OK OK
public OK OK OK
6
Utilisation de la classe Compte
class TestCompte {
public static void main (String arg[]) {
Compte c1, c2;
c1 = new Compte("bb",1,1200);
c2 = new Compte("aa",2,1000);
System.out.println("Le titulaire du compte c1 est = "+c1.gettitulaire());
System.out.println("Le solde du compte c2 est = "+c2.getsolde());
}
}
Exécution :
Le titulaire du compte c1 est = bb
Le solde du compte c2 est = 1000.0
7
Mot clé this
class Compte
{
private String titulaire;
private int numeroCompte;
private double solde;
9
Surcharge de méthode
class Chat
{
private String nom ;
private double poids ;
private double taille ;
public Chat ( )
// Un constructeur est public class TestChat {
{ public static void main (String arg[]) {
nom ="Isis"; Chat c1;
poids = 0 ; // c1 est un objet de la classe
taille = 0 ; //Chat dont la valeur est null
} c1 = new Chat ();
public Chat (String n, double p, double t) // c1 est instancié par le constructeur
// on a poids =0, taille =0 et nom ="Isis".
{ c1 = new Chat ("Plume" ,2.5 , 80) ;
this.nom =n; // c1 est instancié
this.poids = p ; // nom =" Plume ", poids = 2.5 et taille = 80.
this.taille = t ; }
} }
}
10
Accesseur
11
Mutateur
12
Accesseur et mutateur
public String getNom ()
class Chat {
{ return nom;
private String nom ; }
public void setNom (String n)
private double poids ;
{
private double taille ; nom=n ;
public Chat ( ) }
// Un constructeur est public }
public double getTaille ()
{
{
nom ="Isis"; return taille ;
poids = 0 ; }
taille = 0 ; public void setTaille (double t)
{
}
taille = t ;
public Chat (String n, double p, double t) }
{ public double getPoids ()
this.nom =n; {
return poids ;
this.poids = p ;
}
this.taille = t ; public void setPoids (double p)
} {
poids = p ;
} 13
}
Utilité des mutateurs
public class Chat
{
public String nom;
public double poids ; Chat c1;
public double taille ; c1 = new Chat ("Plume" ,2.5, 80) ;
public boolean regime ; // nom ="Plume", poids = 2.5 , taille = 80 et
... //regime = false.
public setPoids (double p){ c1.poids =8;
poids=p; // nom ="Plume", poids = 8, taille = 80 et
if (poids >6) //regime = false.
regime = true ; // modification directe des attributs de l’objet
else // les données de l’objet ne sont plus cohérentes
regime = false c1.setPoids (8) ;
} // nom ="Plume", poids = 8, taille = 80 et
public Chat ( String n, double p, double t) //regime = true.
{ // utilisation des mutateurs
this.nom =n; // les données de l’objet conservent leurs
this.poids = p ; //cohérences.
this.taille = t ;
}
...
}
14
Un objet est une référence
Chat c1;
c1 = new Chat ("isis" ,6 ,80);
Chat c2 = new Chat ("isis" ,6 ,80);
Chat c3 = c2;
ici (c3 == c2) vaut true tandis que (c2 == c1) vaut false
isis 6 80
isis 6 80
@122
@215
15
Tester l’égalité de valeur
public class Chat{
private String nom ;
private double poids ;
private double taille ;
...
public boolean egale (Chat c)
{
return (this.poids == c. poids) && (this.taille ==c.taille) && (this.nom.equals(c.nom));
}
...
}
16
Surcharge de méthodes
public class Chat{
private String nom ;
private double poids ;
private double taille ;
...
public boolean egale (Chat c)
{
return (this.poids == c.poids) && (this.taille ==c. taille)
&& (this.nom.equals (c.nom));
}
public boolean egale (String n, double p, double t)
{
return (this.poids == p) && (this.taille == t)
&& (this.nom.equals (n));
}
…
}
17
Méthode toString
+"\t Poids (en Kg): "+this.poids // nom ="Plume", poids = 2.5 et taille = 80
+"\t Taille (en cm): "+ this.taille ;
System.out.println (c1);
} // Affichage des informations de l’objet c1
...
}
18
Exemple de toString