0% ont trouvé ce document utile (0 vote)
95 vues3 pages

TP - N4 - Héritage

Ce document décrit un TP sur l'héritage en Java. Il présente sept exercices portant sur la définition et l'utilisation de classes, de méthodes et de concepts d'héritage tels que le redéfinition et le rechargement de méthodes. Le dernier exercice propose de modéliser des formes géométriques à l'aide d'une hiérarchie de classes utilisant l'héritage.

Transféré par

Ghaffari Walid
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)
95 vues3 pages

TP - N4 - Héritage

Ce document décrit un TP sur l'héritage en Java. Il présente sept exercices portant sur la définition et l'utilisation de classes, de méthodes et de concepts d'héritage tels que le redéfinition et le rechargement de méthodes. Le dernier exercice propose de modéliser des formes géométriques à l'aide d'une hiérarchie de classes utilisant l'héritage.

Transféré par

Ghaffari Walid
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
Vous êtes sur la page 1/ 3

AU.

: 2020/2021/Session d’Automne
Filière : LST Génie Logiciel, S5
Module : I511
Professeur : M.OUALLA

TP N°4 : Héritage
Exercice 1:

Pour la classe A définie comme suit :


public class A {int x ;}

Lequel des programmes suivants est faux ?


1) A a = new A() ; String s = a.toString() ;
2) A a = new A() ; boolean b = a.equals("bonjour") ;
3) A a = new A(3) ;
4) A a1 = new A() ; A a2 = new A() ; boolean b = a1.equals(a2) ;

Exercice 2:

Qu’affichera le code suivant ?

Exercice 3:
Etant donnée que la classe Triangle étend la classe Figure, trouvez une ligne correcte parmi
les suivantes :
1) Figure f1 =new Figure(); Triangle tr= (Triangle)f1; Figure f2=(Figure)tr;
2) Triangle tr1= new Triangle(); Figure f = tr1; Triangle tr2=(Triangle)f;
3) Triangle tr1= new Triangle(); Object o = (Object)tr1; Triangle tr2=o ;
4) Figure f1 =new Figure(); Triangle tr= (Triangle)f1; Figure f2=tr ;

Exercice 4:

Quelles sont les erreurs commises dans ce programme ?

public class A {
public static void g (int n) {…}
public void f (float x) {…}
public void f (int n) {…}
}

class B extends A {
private static double g () {return 0.0;}
private void f (float x) {…}
public float f (int n) {return 0.0f;}
}

1/3
AU. : 2020/2021/Session d’Automne
Filière : LST Génie Logiciel, S5
Module : I511
Professeur : M.OUALLA

Exercice 5:

Soit le programme suivant :

1. Déterminer les méthodes redéfinies et celles rechargées.


2. Pour chaque appel de méthode dans main(), déterminer la méthode qui sera appelée (si
c’est possible). Justifier votre réponse.

Exercice 6:
Donner le résultat du code suivant :

Exercice 7:

L’objectif de cet exercice est de créer une application Java permettant de gérer les formes
géométriques: (Rectangle, Carré, Ellipse et Cercle).
1. Chaque forme est définie par sa position dans le plan, cette position est un point
défini par son abscisse (x) et son ordonnée (y).
2. Chaque forme peut être déplacée (modification de sa position), peut calculer son
périmètre et sa surface.
3. Chaque forme peut afficher son type (getTypeForme()).

2/3
AU. : 2020/2021/Session d’Automne
Filière : LST Génie Logiciel, S5
Module : I511
Professeur : M.OUALLA

Le diagramme de classe de cette application est le suivant :

Point Forme
- abscisse : double # p : Point
- ordonnee : double
+ <<Forme>>(Point p)
+ <<Point>>() + deplacer(double dx, double dy): void
+ <<Point>>( double abscisse, double 1 n + surface() : double
ordonnee) + perimetre() : double
+ deplacerXY(double dx, double dy): void + getTypeForme(): String
+ distance(Point p) : double

Rectangle Ellipse
- longueur : double - grandRayon : double
- largeur : double - petitRayon : double

+ <<Rectangle>>(Point p, double + <<Ellipse>>(Point p, double


longueur, double largeur) grandRayon, double petitRayon)
+ surface(): double + surface(): double
+ perimetre(): double + perimetre(): double
+ getTypeForme(): String + perimetre(String): double
+ getTypeForme(): String

Cercle
Carre - rayon : double
- cote : double + <<Cercle>>(Point p, double rayon)
+ <<Carre>>(Point p, double cote) + getDiametre() : int
+ getTypeForme(): String + getTypeForme(): String

1. Ecrire le code de chaque classe.


NB. 1) Le périmètre d’une ellipse peut se calculer de deux façons :
double perimetre() : permet de calculer ce périmètre par la formule
𝒂𝟐+𝒃𝟐
suivante : 𝒑 = 𝟐𝝅√ .
𝟐

double perimetre(String methode) : cette méthode le calcule par la formule


n°1 de Ramanujan : 𝒑 = 𝝅 (𝟑(𝒂 + 𝒃) − √(𝟑𝒂 + 𝒃)(𝒂 + 𝟑𝒃)).
L’argument de cette méthode est la chaine : "Ramanujan" ou bien
n’importe quelle autre.

Tel que a est le grand rayon et b le petit rayon.

2) La surface d’une ellipse est : 𝑠 = 𝜋 × 𝑎 × 𝑏

2. Ecrire une classe qui permet de tester les classes décrites ci-dessus.

3/3

Vous aimerez peut-être aussi