Exercices java Serie2

Telechargé par oussama benzzi
JAVA 2024/2025
Série N2
Ex 1
Réaliser 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, en afficher les carac-
téristiques, le déplacer et en afficher à nouveau les caractéristiques.
Ex 2
Soit le programme suivant comportant la définition d’une classe nommée Point et son
utilisation :
1class Point {
2public Point ( int abs , int ord ) { x = abs ; y = ord ; }
3public void deplace (int dx , int dy ) { x += dx ; y += dy ; }
4public void aff ic he () {
5System . out . p rin tln ( "Je suis un point de coo rd on nees " +x+" "
+ y) ;
6}
7private double x ; // abscisse
8private double y ; // ordonnee
9}
10 public class TstPnt{
11 public static void ma in ( Stri ng args []) {
12 Point a ;
13 a = new Point (3 , 5) ; a. affiche () ;
14 a. deplace (2 , 0) ; a. affiche () ;
15 Point b = new Point (6 , 8) ; b. affiche () ;
16 }
17 }
Modifier la définition de la classe Point en supprimant la méthode affiche et en intro-
duisant deux méthodes d’accès nommées abscisse et ordonnee fournissant respectivement
l’abscisse et l’ordonnée d’un point. Adapter la méthode main en conséquence.
Ex 3
Créer une classe permettant de manipuler un point d’un axe, repéré par une abscisse
(de type int). On devra pouvoir effectuer des changements d’origine, en conservant en
permanence l’abscisse d’une origine courante (initialement 0). On prévoira simplement
les méthodes suivantes :
constructeur, recevant en argument l’abscisse "absolue" du point (c’est-à-dire repé-
rée par rapport au point d’origine 0 et non par rapport à l’origine courante),
affiche qui imprime à la fois l’abscisse de l’origine courante et l’abscisse du point
par rapport à cette origine,
O.Benzzi 1/6
JAVA 2024/2025
setOrigine qui permet de définir une nouvelle abscisse pour l’origine (exprimée de
façon absolue et non par rapport à l’origine courante),
getOrigine qui permet de connaître l’abscisse de l’origine courante.
Ecrire un petit programme de test fournissant les résultats suivants :
1Point a - absc iss e = 3
2re la ti ve a une orig in e d ’ a bsc is se 0
3Point b - ab scisse = 12
4re la ti ve a u ne o ri gine d ’ a bs cis se 0
5On pl ac e l ’ o ri gi ne en 3
6Point a - absc iss e = 0
7re la ti ve a u ne o ri gine d ’ a bs cis se 3
8Point b - absc iss e = 9
9re la ti ve a u ne o ri gine d ’ a bs cis se 3
Ex 4
(Ex31) Réaliser une classe qui permet d’attribuer un numéro unique à chaque nouvel
objet créé (1 au premier, 2 au suivant...). On ne cherchera pas à réutiliser les numéros
d’objets éventuellement détruits. On dotera la classe uniquement d’un constructeur, d’une
méthode getIdent fournissant le numéro attribué à l’objet et d’une méthode getIdentMax
fournissant le numéro du dernier objet créé.
Écrire un petit programme d’essai.
Ex 5
Adapter la classe précédente, de manière que le numéro initial des objets soit lu au
clavier. On devra s’assurer que la réponse de l’utilisateur est strictement positive.
O.Benzzi 2/6
JAVA 2024/2025
Correction Série N2
correction Ex 1
1class point {
2public point ( char name ,double abs ) {
3x = abs ;
4nom = name ;
5}
6
7public void tran slat e ( double dx ) {
8x += dx ;
9}
10
11 public void aff ic he () {
12 System . out . p rin tln ( " Je suis un point de coo rdonn ee s "+x);
13 }
14
15 private double x;
16 private char nom ;
17 }
Listing 1 – fichier Point.java
1public class Test3 {
2public static void main ( St ring [] args ) {
3point a = new p oi nt ( ’ A ’ ,3.4);
4a . a ff ic he () ;
5a. t ransla te (1.0) ;
6a . a ff ic he () ;
7}
8}
Listing 2 – fichier Test3.java
correction Ex 2
1class Point {
2public Point ( int abs , int ord ) {
3x = abs ;
4y = ord ;
5}
6
7public void deplace(int dx , int dy ) {
8x += dx ;
9y += dy ;
10 }
11
12 public int ab sc is se () {
13 return x;
14 }
15
16 public int or do nn e () {
17 return y;
18 }
19
O.Benzzi 3/6
JAVA 2024/2025
20 private int x;
21 private int y;
22 }
Listing 3 – fichier Point.java
1public class Test3 {
2public static void main ( St ring [] args ) {
3Point a = new P oint (1 ,2) ;
4Point b = new P oint (4 ,5) ;
5
6System . out . p rin tln ( "L absci sse de a est "+ a . ab sc is se () + " l ’
ordonnee de a est "+a . o rd on ne () ) ;
7System . out . p rin tln ( "L absci sse de a est "+ b . ab sc is se () + " l ’
ordonnee de a est "+b . o rd on ne () ) ;
8
9a . depla ce (1 ,1) ;
10 b . depla ce (2 ,2) ;
11
12 System . out . p rin tln ( " apres dep lac eme nt " );
13
14 System . out . p rin tln ( "L absci sse de a est "+ a . ab sc is se () + " l ’
ordonnee de a est "+a . o rd on ne () ) ;
15 System . out . p rin tln ( "L absci sse de a est "+ b . ab sc is se () + " l ’
ordonnee de a est "+b . o rd on ne () ) ;
16
17 }
18 }
Listing 4 – fichier Test3.java
correction Ex 3
L’abscisse de l’origine courante est une information qui concerne tous les points de la
classe. On en fera donc un champ de classe en le déclarant static. De la même manière,
les méthodes setOrigine et getOrigine concernent non pas un point donné, mais la classe.
On en fera des méthodes de classe en les déclarant static.
1cpublic class Point {
2public Point ( int xx ){ x = xx ; }
3
4public void aff ic he () {
5System . out . p rin tln ( " abscis se = "+x);
6System . out . p rin tln ( " relative a une ori gine d abs cis se : "+( x
- orgAbs ) );
7}
8
9public static void se tO ri gi ne ( int org ) { orgAbs = org ; }
10
11 public static int get Or ig in e () { return orgAbs; }
12
13 private int x;
14 private static int orgAbs = 0;
15 }
Listing 5 – fichier Point.java
O.Benzzi 4/6
JAVA 2024/2025
1public class Test3 {
2public static void main ( St ring [] args ) {
3Point a = new P oint (3) ;
4Point b = new P oint (12) ;
5
6System . out . print (" Point a - " ); a. a ff ic he () ;
7System . out . print (" Point b - " ); b. a ff ic he () ;
8
9Point . s et Or ig in e (3) ;
10
11 System . out . p rin tln ( " On pl ac e l ’ o ri gi ne en " + Point . getOrigine () );
12
13 System . out . print (" Point a - " ); a. a ff ic he () ;
14 System . out . print (" Point b - " ); b. a ff ic he () ;
15 }
16 }
Listing 6 – fichier Test3.java
correction Ex 4
1public class Point {
2public Point () {
3maxN umObj et ++;
4numObjet = max NumOb je t ;
5}
6
7public int ge tI de nt () {
8return numObjet ;
9}
10
11 public static int ge tI de nt Ma x () {
12 return maxNumObjet;
13 }
14
15 private static int m ax NumOb je t = 0;
16 private int numObjet;
17 }
Listing 7 – fichier Point.java
1public class Test3 {
2public static void main ( St ring [] args ) {
3Point a = new P oi nt () ;
4Point b = new P oi nt () ;
5
6System . out . p rin tln ( " le num de a : " + a. g et Id en t () ) ;
7System . out . p rin tln ( " le num de b : " + b. g et Id en t () ) ;
8
9System . out . p rin tln ( " le n um max : " + Point . get Iden tMa x () );
10 }
11 }
Listing 8 – fichier Test3.java
correction Ex 5
O.Benzzi 5/6
1 / 6 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 !