ISET Béjà Lammouchi R.
POO
TD – TP 1
Exercice 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 caractéristiques,
le déplacer et en afficher à nouveau les caractéristiques.
Exercice 2
Que fournit le programme suivant ?
class A {
public A (int coeff) {
nbre *= coeff ;
nbre += decal ;
}
public void affiche () {
[Link] ("nbre = " + nbre + " decal = " + decal) ;
}
private int nbre = 20 ;
private int decal ;
}
public class InitChmp {
public static void main (String args[]) {
A a = new A (5) ;
[Link]() ;
}
}
Exercice 3
Quelle erreur a été commise dans cette définition de classe ?
class ChCt {
public ChCt (float r) {
x=r;
Page 1 sur 3
ISET Béjà Lammouchi R.
}
.....
private final float x ;
private final int n = 10 ;
private final int p ;
}
Exercice 4
Que fournit le programme suivant ?
class Entier
{
public Entier (int nn) {
n = nn ;
}
public void incr (int dn){
n += dn ;
}
public void imprime () {
[Link] (n) ;
}
private int n ;
}
public class TstEnt
{
public static void main (String args[])
{
Entier n1 = new Entier (2) ;
[Link] ("n1 = ") ;
[Link]() ;
Entier n2 = new Entier (5) ;
[Link] ("n1 = ") ;
[Link]() ;
[Link](3) ;
[Link] ("n1 = ") ;
[Link]() ;
[Link] ("n1 == n2 est " + (n1 == n2)) ;
n1 = n2 ;
[Link](12) ;
[Link] ("n2 = ") ;
[Link]() ;
[Link] ("n1 = ") ;
[Link]() ;
[Link] ("n1 == n2 est " + (n1 == n2)) ;
}
}
Exercice 5
Soit le programme suivant comportant la définition d’une classe nommée
Point et son utilisation :
Page 2 sur 3
ISET Béjà Lammouchi R.
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 ()
{
[Link] ("Je suis un point de coordonnees " + 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) ;
[Link]() ;
[Link](2, 0) ;
[Link]() ;
Point b = new Point(6, 8) ;
[Link]() ;
}
}
Modifier 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 ordonnee
fournissant respectivement l’abscisse et l’ordonnée d’un point. Adapter la
méthode main en conséquence.
Page 3 sur 3