0% ont trouvé ce document utile (0 vote)
38 vues2 pages

Exemples de classes et héritage en Java

La classe PointNom dérive de la classe Point et permet de manipuler des points définis par leurs coordonnées et un nom. Les exercices présentent des programmes Java illustrant l'héritage et le polymorphisme en affichant le type des objets créés.

Transféré par

ايمان ايمان
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues2 pages

Exemples de classes et héritage en Java

La classe PointNom dérive de la classe Point et permet de manipuler des points définis par leurs coordonnées et un nom. Les exercices présentent des programmes Java illustrant l'héritage et le polymorphisme en affichant le type des objets créés.

Transféré par

ايمان ايمان
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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) ;
}
}

Vous aimerez peut-être aussi