1
Licence professionnelle SIRI
2007 / 2008
1
Jean GUILLET
JAVA langage orienté objet
Les classes dans le modèle objet
(rappel)
Elle représente une famille d'objets ayant les
mêmes propriétés (attributs) et comportement
(méthode)
Une classe est un modèle de définition pour des
objets
Décrit l ’ensemble des données (attributs)
Décrit l'ensemble des opérations (méthodes)
2
Jean GUILLET
JAVA langage orienté objet
Les classes
Le modèle objet
(rappel)
Voiture
- Couleur : string
-nbKilometre : int
+Voiture(string)
+~Voiture()
+rouler(int) : void
Nom : string
nbKg : int
•Identification
•Données : Attributs
•Opérations : méthodes
•Sélecteurs et modificateurs
3
Jean GUILLET
JAVA langage orienté objet
Syntaxe d'une classe
(rappel)
Fichier Point.java
public class Point
{
}
double x;
double y;
....
void translater(double dx,double dy)
{x += dx;
y += dy;
}
double distance()
{double dist;
dist = Math.sqrt(x*x+y*y);
return dist;
}
Nom de la classe
identique au nom du fichier
Méthodes
Attribut
2
Licence professionnelle SIRI
2007 / 2008
4
Jean GUILLET
JAVA langage orienté objet
Java : création des objets (rappel)
Point p1 ;
P1 = new Point() ;
Point p2 = new Point() ;
Point p3 = p2 ;
5
Jean GUILLET
JAVA langage orienté objet
Java : les méthodes
Principe : on demande à l'objet
d'effectuer une opération
Syntaxe :
nomDeObjet.nomDeMethode([paramètres effectifs])
une référence
permettant de
désigner l'objet à
qui le message est
envoyé
le nom de la méthode à
exécuter (cette méthode
doit bien entendu
être définie dans la classe
de l'objet)
les éventuels
paramètres de la
méthode
6
Jean GUILLET
JAVA langage orienté objet
Point p1;
int dist ;
p1 = new Point();
p1.translater(10.0, 20.1);
dist = p1.distance() ;
System.out.println( dist ) ;
Java : les méthodes exemple
Fonction membre
sans paramètre
3
Licence professionnelle SIRI
2007 / 2008
7
Jean GUILLET
JAVA langage orienté objet
Un paramètre est toujours un
paramètre d'entrée. Il peut être :
Une variable de type simple
Une référence typée pour un tableau ou
une instance de classe
Java et méthodes : les paramètres
8
Jean GUILLET
JAVA langage orienté objet
Le passage de paramètres est un
passage par valeur.
A l'exécution, le paramètre formel est
initialisé avec l'expression du paramètre
effectif :
Java et méthodes : les paramètres
void translater(double dx, double dy)
{x += dx;
y += dy;
}
public static void main(String[] args)
{Point p1, p2, p3, p4;
double dist;
p1 = new Point();
System.out.println("la distance est " + p1.distance());
p1.translater(10, 5);
dist = p1.distance();
System.out.println("la nouvelle distance est " + dist);
}
Lors de l'appel par ex dans main Dans la classe Point
9
Jean GUILLET
JAVA langage orienté objet
On veut savoir si un point est plus proche
de l'origine que le point en cours
À l'utilisation :
Java et m
éthodes : paramètres (ex)
Point p1 = new Point();
Point p2 = new Point();
...
if (p1.plusProcheORigineQue(p2))
{System.out.println("p1 est plus proche de l’origine que p2");
}
else
{System.out.println("p2 est plus proche de l’origine que p1");
}
4
Licence professionnelle SIRI
2007 / 2008
10
Jean GUILLET
JAVA langage orienté objet
La définition dans la classe Point
Java et m
éthodes : paramètres (ex)
Public class Point
{
....
/*** Test si le Point (qui reçoit le message) est plus proche de l’origine qu’un autre Point.
* @param p le Point avec lequel le Point recevant le message doit être comparé
* @return true si le point recevant le message est plus proche de l’origine que p, false sinon.
*/
public boolean plusProcheOrigineQue(Point p)
{boolean proche = false;
if (distance() < p.distance())
proche = true ;
return proche;
}
}
11
Jean GUILLET
JAVA langage orienté objet
Il suffit d'appeler directement la méthode
puisque nous sommes dans l'objet
nomDeMethode([paramètres effectifs])
Appel de méthode dans la classe
le nom de la méthode à
exécuter (cette méthode
est définie dans la classe
de l'objet)
les éventuels
paramètres de la
méthode
12
Jean GUILLET
JAVA langage orienté objet
Exemple dans la classe Segment, on
désire savoir si deux segments sont
identiques
public boolean equals(Segment seg)
{
boolean egal = false ;
egal = seg.Calculerlongueur() == Calculerlongueur() ;
return egal;
}
Appel de méthode dans la classe
une référence
permettant de
désigner l'objet à
qui le message est
envoyé
le nom de la méthode à
exécuter
5
Licence professionnelle SIRI
2007 / 2008
13
Jean GUILLET
JAVA langage orienté objet
Java : accès aux attributs
A l'extérieur dune classe, la visibilité
des attributs doit être restreinte voire
interdite
C'est le principe d'encapsulation
14
Jean GUILLET
JAVA langage orienté objet
Java : accès aux attributs (suite)
L'accès aux attributs doit être
impossible directement
Public class Point
{
private double x;
private double y;
}
Public static void main()
{Point p1 ;
p1 = new Point() l
p1.x = 10 ; // impossible ici
}
Dans la classe TestPoint
15
Jean GUILLET
JAVA langage orienté objet
Ces méthodes sont indépendantes des
instances de classes
On les appelle des méthodes de classe
Lors de la définition, elles sont précédées
du mot clé Static
Elles sont appelées avec le nom de la
classe :
NomDeLaClasse.nomDeLaMéthode(liste de paramètres)
ex : Math.cos(x) où Math est une classe
Java : les méthodes statiques
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !