ENSEM Programmation Java GE
Premier atelier
Programmation Orientée Objets
Introduction
La programmation Java est basée sur la manipulation d’objets composés de données membres et de
méthodes. Les objets sont des instances de classes. La classe correspond à la généralisation de type,
c’est une description d’un ensemble d’objets ayant une structure de données commune et disposant
des mêmes méthodes.
Exercice 1 :
Objectif : Déclaration de classes et allocation d’objets.
Rappel : Le constructeur est une méthode particulière permettant d’instancier une classe, c'est-à-
dire créer un objet à partir d'une classe, il s'agit d'utiliser l'opérateur new. Le constructeur permet
d'initialiser les attributs de la classe, ainsi que d’exécuter des méthodes lors de l'instanciation.
Travail à faire : Réalisez une classe Point permettant de représenter un point sur un axe. Chaque
point sera caractérisé par un nom (de type char) et une abscisse (de type double). On prévoira :
• un constructeur recevant en arguments le nom et l’abscisse d’un point,
• une méthode affiche imprimant (en fenêtre console) le nom du point et son abscisse,
• une méthode translate effectuant une translation définie par la valeur de son argument.
Écrire un petit programme utilisant cette classe pour créer un point, affichez les caractéristiques, le
déplacer et affichez à nouveau les caractéristiques.
Exercice 2 :
Objectif : Encapsulation des attributs
Rappel : L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les
autres objets. Les 4 niveaux d’encapsulation de Java sont : private, default, protected et public
Travail à faire : Soit le programme suivant comportant la définition d’une classe nommée Point et son
utilisation.
class Point
{
public Point (int abs, int ord) { x = abs ; y = ord ; }
public void deplace (int dx, int dy) { x += dx ; y += dy ; }
public void affiche (){ System.out.println ("Je suis un point de coordon-
nees " + x + " " + y);}
private double x ; // abscisse
private double y ; // ordonnee
}
public class TstPnt{
public static void main (String args[])
{
Point a ;
a = new Point(3, 5) ; a.affiche() ;
a.deplace(2, 0) ; a.affiche() ;
Point b = new Point(6, 8) ; b.affiche() ; }
}
1
ENSEM Programmation Java GE
Modifiez la définition de la classe Point en supprimant la méthode affiche et en introduisant deux
méthodes d’accès nommées abscisse et ordonnée fournissant respectivement l’abscisse et
l’ordonnée d’un point. Adaptez la méthode main en conséquence.
Exercice 3 :
Objectif : La surcharge du constructeur
Rappel : La surcharge d’une méthode ou d’un constructeur permet de définir plusieurs fois une
même méthode/constructeur avec des arguments différents. Le compilateur choisit la méthode qui
doit être appelée en fonction du nombre et du type des arguments.
Travail à faire : Mettre en œuvre la classe Point de la façon suivante:
Point pt;
pt = new Point(4);
pt.deplace(2,4);
pt = new Point(4,5);
pt. deplace(2,4);
Que concluez-vous sur l’utilisation du constructeur par défaut dans ce cas ?