Exercice 1 :
On dispose de la classe suivante :
class Point
{ public Point (int x, int y) { this.x = x ; this.y = y ; }
public void affiche()
{ [Link] ("Coordonnees : " + x + " " + y) ;
}
private int x, y ;
}
Réaliser une classe PointNom, dérivée de Point permettant de manipuler des points définis
par leurs coordonnées et un nom (caractère). On y prévoira les méthodes suivantes :
• constructeur pour définir les coordonnées et le nom d’un objet de type PointNom,
• affiche pour afficher les coordonnées et le nom d’un objet de type PointNom.
Exercice 2 :
Quels résultats fournit le programme suivant ?
class A
{ public void affiche()
{ [Link] ("Je suis un A") ;
}
}
class B extends A { }
class C extends A
{ public void affiche()
{ [Link] ("Je suis un C") ;
}
}
class D extends C
{ public void affiche()
{ [Link] ("Je suis un D") ;
}
}
class E extends B {}
class F extends C {}
public class DiagHeri
{ public static void main (String arg[])
{ A a = new A() ; [Link]() ;
B b = new B() ; [Link]() ;
C c = new C() ; [Link]() ;
D d = new D() ; [Link]() ;
E e = new E() ; [Link]() ;
F f = new F() ; [Link]() ;
}
}
Exercice 3 :
Quels résultats fournit le programme suivant ?
class A
{ public void f(double x) { [Link] ("A.f(double=" + x +") ") ; }
}
class B extends A {}
class C extends A
{ public void f(long q) { [Link] ("C.f(long=" + q + ") ") ; }
}
class D extends C
{ public void f(int n) { [Link] ("D.f(int=" + n + ") ") ; }
}
class E extends B {}
class F extends C
{ public void f(float x) { [Link] ("F.f(float=" + x + ") ") ; }
public void f(int n) { [Link] ("F.f(int=" + n + ") ") ; }
}
public class Surdf
{ public static void main (String arg[])
{ byte bb=1 ; short p=2 ; int n=3 ; long q=4 ;
float x=5.f ; double y=6. ;
A a = new A() ; a.f(bb) ; a.f(x) ; [Link]() ;
B b = new B() ; b.f(bb) ; a.f(x) ; [Link]() ;
C c = new C() ; c.f(bb) ; c.f(q) ; c.f(x) ; [Link]() ;
D d = new D() ; d.f(bb) ; c.f(q) ; c.f(y) ; [Link]() ;
E e = new E() ; e.f(bb) ; e.f(q) ; e.f(y) ; [Link]() ;
F f = new F() ; f.f(bb) ; f.f(n) ; f.f(x) ; f.f(y) ; f.f(p) ;
}
}
Exercice 4 :
Quels résultats fournit ce programme ?
class A
{
public A (int nn)
{ [Link] ("Entree Constr A - n=" + n + " p=" + p) ;
n = nn ;
[Link] ("Sortie Constr A - n=" + n + " p=" + p) ;
}
public int n ; // ici, exceptionnellement, pas d'encapsulation
public int p=10 ;
}
class B extends A
{ public B (int n, int pp)
{ super (n) ;
[Link] ("Entree Constr B - n=" + n + " p=" + p + " q=" + q) ;
p = pp ;
q = 2*n ;
[Link] ("Sortie Constr B - n=" + n + " p=" + p + " q=" + q) ;
}
public int q=25 ;
}
public class TstInit
{ public static void main (String args[])
{ A a = new A(5) ;
B b = new B(5, 3) ;
}
}