Académique Documents
Professionnel Documents
Culture Documents
TD/TP N°3
Exercice 1
Quels résultats fournit le programme suivant (TestA.java) ?
2022/2023 1/6
Filière : DUT - Génie Informatique
Élément : Programmation Orientée Objet
Semestre : II
Pr. Salek RIADI
/* TestA.java */
class A {
private static int nb = 0;
A(){ nb++; }
public static int getNB(){ return nb; }
public void f(byte b) { System.out.println("je suis void f(byte b) ");}
public void f(int n) {
System.out.println("je suis void f(int n) ");
nb += n;
}
public void f(float x) {System.out.println("je suis void f(float x) ");}
public void f(double y) {System.out.println("je suis void f(double y) ");}
public void f(int n, double y) {
System.out.println("je suis void f(int n, double y) ");
nb += n;
}
public void f(int n, float x) {
System.out.println("je suis void f(int n, float x) ");
nb += n;
}
public void f(float x1, float x2) {System.out.println("je suis void f(float x1, float x2)");}
public void f(float x, int n) {
System.out.println("je suis void f(float x, int n)");
nb += n;
}
}
2022/2023 2/6
Filière : DUT - Génie Informatique
Élément : Programmation Orientée Objet
Semestre : II
Pr. Salek RIADI
Exercice 2
On dispose de la classe suivante :
class Point {
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public void deplace(double dx, double dy) {
x += dx;
y += dy;
}
public void affiche() {
System.out.println("Point de coordonnees " + x + " " + y);
}
public double getX() {
return x;
}
public double getY() {
return y;
}
private double x, y;
}
Exercice 3
Quels résultats fournit le programme suivant (MainClass.java) ?
2022/2023 3/6
Filière : DUT - Génie Informatique
Élément : Programmation Orientée Objet
Semestre : II
Pr. Salek RIADI
/*MainClass.java*/
class A {
public void f(double x) {
System.out.println("A.f(double=" + x + ") ");
}
}
class B extends A {
}
class C extends A {
public void f(long q) {
System.out.println("C.f(long=" + q + ") ");
}
}
class D extends C {
public void f(float x) {
System.out.println("F.f(float=" + x + ") ");
}
public void f(int n) {
System.out.println("F.f(int=" + n + ") ");
}
}
2022/2023 4/6
Filière : DUT - Génie Informatique
Élément : Programmation Orientée Objet
Semestre : II
Pr. Salek RIADI
Exercice 4
Quels résultats fournit le programme suivant (MainClass.java) ?
/*MainClass.java*/
class A {}
class B extends A{
public B (int v){
super();
System.out.println ("Entree constructeur B - i=" + i ) ;
i=v;
System.out.println ("Sortie constructeur B - i=" + i) ;
}
public int i ;
}
class C extends B{
public C (int v, int w){
super(v);
System.out.println ("Entree constructeur C - i=" + i + " j=" + j) ;
j=w;
System.out.println ("Sortie constructeur C - i=" + i + " j=" + j) ;
}
public int j = 7 ;
}
class D extends C{
public D (int v, int w, int u){
super(v,w) ;
System.out.println ("Entree constructeur D - i=" + i + " j=" + j + " k=" + k) ;
k = u;
System.out.println ("Sortie constructeur D - i=" + i + " j=" + j + " k=" + k) ;
}
public int k = 17 ;
}
public class MainClass{
public static void main (String args[]){
A a = new A();
B b = new B(5);
C c = new C(3, 9);
D d = new D(4, 9, 6);
}
}
2022/2023 5/6
Filière : DUT - Génie Informatique
Élément : Programmation Orientée Objet
Semestre : II
Pr. Salek RIADI
Exercice 5
1. Quels résultats fournit le programme suivant (MainClass.java) ?
/*MainClass.java*/
class Point{
public Point (int x, int y) {
this.x = x;
this.y = y;
}
public static boolean identiques (Point a, Point b){
return ( (a.x==b.x) && (a.y==b.y) ) ;
}
public boolean identique (Point a){
return ( (a.x==x) && (a.y==y) ) ;
}
private int x, y ;
}
class PointNom extends Point{
PointNom (int x, int y, char nom){
super (x, y) ;
this.nom = nom;
}
private char nom;
}
public class MainClass{
public static void main (String args[]){
Point p = new Point (2, 4);
PointNom pn1 = new PointNom (2, 4, 'A');
PointNom pn2 = new PointNom (2, 4, 'B');
System.out.println (pn1.identique(pn2));
System.out.println (p.identique(pn1));
System.out.println (pn1.identique(p));
System.out.println (Point.identiques(pn1, pn2));
}
}
2. Compléter la classe PointNom en ajoutant une méthode statique identiques et une méthode
identique fournissant toutes les deux la valeur true lorsque les deux points concernés ont
à la fois mêmes coordonnées et même nom.
3. Quels résultats fournira alors le programme précédent (MainClasss.java)?
2022/2023 6/6