Département d’Informatique Année universitaire 2020/2021
Faculté des sciences POO-Java
Université Mohammed Premier Filière SMI
Oujda Semestre 5
TP numéro 1
Objectifs
— Se familiariser avec l’environnement de programmation Java en travaillant en mode
commande puis avec Eclipse ;
— Créer et instancier une classe en utilisant les constructeurs ;
— Comprendre la diffèrence entre un attribut privè et un attribut public ;
— Surcharge de méthodes ; attributs et mèthodes statiques.
Exercice 1
1. Dans votre répertoire de travail et en utilisant un éditeur de texte, écrivez le programme
suivant dans un seul fichier :
public c l a s s T e s t E t u d i a n t {
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
Etudiant etud = new Etudiant ( " A l i " , " Sai d " ) ;
etud . a f f i c h e r ( ) ;
}
}
c l a s s Etudiant {
private S t r i n g nom , prenom ;
public Etudiant ( S t r i n g nom , S t r i n g prenom ) {
t h i s . nom = nom ;
t h i s . prenom = prenom ;
}
public void a f f i c h e r ( ) {
System . out . p r i n t l n ( "Nom: "+nom+" , Prenom : "+prenom ) ;
}
}
2. Compilez le programme, vérifiez les fichiers générés et exécutez le programme.
3. Que se passe t-il si on ajoute l’instruction [Link]=“Sami” ; dans la classe TestEtudiant ?
4. Ajoutez les mèthodes getNom() et setNom() pour résoudre ce problème.
Exercice 2
1. Créez une classe Point qui a trois attributs x, y et z, un constructeur et une méthode
calculer() qui a trois arguments et qui retourne leur somme.
2. Crèez une classe principale nommée Exercice2 qui instancie l’objet ayant x = 5, y = 2
et z = 3. Appelez la mèthode calculer() pour cet objet.
1
Exercice 3
Soit la classe Etudiant définie comme suit :
Etudiant
nom
prenom
cne
afficher()
1. Créez la classe Etudiant en définissant trois constructeurs :
— un qui permet d’initialiser le nom et le prénom ;
— un autre pour initialiser le nom, le prénom et le cne (utiliser this()) ;
— et un constructeur de copie.
2. Crèer une classe TestEtudiant pour les tests. Dans cette classe créez (instanciez) trois
objets de type Etudiant :
— pour le premier, utiliser le premier constructeur ;
— pour le deuxième, utiliser le deuxième constructeur ;
— le troisième objet utilise les données (une copie) du deuxième étudiant.
3. Ajoutez à la classe Etudiant :
— trois attributs privés (note1, note2 et note3) ;
— un constructeur qui initialise tous les attributs ;
— une méthodes « moyenne() » qui permet de calculer la moyenne des notes ;
4. Dans la classe TestEtudiant, demandez à l’utilisateur d’entrer les notes de trois étudiants
et affichez la moyenne correspondante à chacun d’eux.
Exercice 4
1. Créez la classe Cercle qui contient :
— les attributs privés x et y (centre du cercle) et le rayon.
— un constructeur qui initialise le centre et le rayon ;
— la méthode deplacerCentre() qui permet de déplacer le centre (contient deux para-
mètres) et les méthodes setRayon() et getRayon() ;
— la méthode afficher() qui permet d’afficher les informations du cercle.
2. Testez la classe Cercle dans la classe TestCercle :
— Créez un cercle de centre et rayon saisis au clavier et affichez les informations.
— Modifiez le rayon du cercle et affichez les informations concernant le cercle.
— Déplacer le centre du cercle de (2, 2) et affichez les nouvelles informations ;
Exercice 5
Une autre façon de traiter l’exercice 4 est comme suit (voir figure ci-dessous) :
— Créez une classe Point qui a deux attributs x et y, un constructeur et une méthode
afficher() ;
— La classe Cercle est définie maintenant par un point et un rayon. Ajoutez un construc-
teur qui contient deux arguments, un de type double et l’autre de type Point ;
2
— Ajoutez une méthode afficher() qui appelle la mèthode afficher() de la classe Point et
qui ajoute l’information concernant le rayon.
— Testez la classe Cercle dans la classe TestCercle.
Exercice 6
Qu’affiche le code suivant ? vérifiez vos résultats et expliquez pourquoi.
c l a s s MaClasse {
s t a t i c int x = 2 ;
int y = 3 ;
}
public c l a s s T e s t S t a t i c {
public s t a t i c void main ( S t r i n g [ ] args ){
MaClasse A = new MaClasse ( ) ;
MaClasse B = new MaClasse ( ) ;
A. y = 4 ;
System . out . p r i n t l n ( "A. y = " + A. y ) ;
System . out . p r i n t l n ( "B . y = " + B. y ) ;
A. x = 5 ;
System . out . p r i n t l n ( "A. x = " + A. x ) ;
System . out . p r i n t l n ( "B . x = " + B. x ) ;
}}
Exercice 7
Qu’affiche le code suivant ? vérifiez le résultat et trouvez la bonne solution.
import j a v a . u t i l . Scanner ;
public c l a s s TestComparaisonChaines {
public s t a t i c void main ( S t r i n g [ ] a r g s ) {
S t r i n g nom = " smi " , s t r ;
Scanner i n p u t = new Scanner ( System . i n ) ;
System . out . p r i n t ( " S a i s i r l e nom : " ) ;
s t r = input . nextLine ( ) ;
i f ( s t r == nom) System . out . p r i n t l n (nom + " = " + s t r ) ;
e l s e System . out . p r i n t l n (nom + " d i f f e r e n t de " + s t r ) ;
}
}