Vous êtes sur la page 1sur 3

TPProgrammationOrienteObjets

ProgrammationOrienteObjet
TPno4:Lhritage
LicencementionISIL,semestre4

Exercice1

FORME
Forme

+Point3D centre
+void bouger(double x, double y, double z)
+abstract double CalculerSurface()
+abstract double CalculerVolume()
+String ToString()

Brique Boule
+double largeur +double rayon
+double longueur BRIQUE
+double hauteur +double CalculerSurface()
+double CalculerVolume() BOULE
+double CalculerSurface() +Boolean egale(Boule b)
+double CalculerVolume() +String ToString()
+String ToString()


Cube

+String ToString()

CUBE

On souhaite disposer dun ensemble de classes permettant de manipuler des formes


tridimensionnelles.Pourcelaonproposelahirarchiedeclassesdelafigurecidessus.Les
contraintessurcesclassessontlessuivantes:
- LaclasseFormenepourrapastreinstancie.
- LaclasseCubenepourrapastredrive.
- Chaque forme possde un attribut de type Point3D qui reprsente son centre de
gravit.
- UnobjetdetypeBouleestcaractrisparsoncentredegravitetsonrayon.
- UnobjetdetypeBriqueestcaractrisparsoncentredegravit,unelargeur,une
longueuretunehauteur.
- UnobjetdetypeCubeestunebriquepourlaquellelargeur=longueur=hauteur.
1

TPProgrammationOrienteObjets

Lesformesdisposentdunemthodebougerprenantcommeparamtrestroisrelsx,yet
zetdesmthodescalculerSurfaceetcalculerVolumecalculantrespectivementla
surfaceetlevolumedelaforme.

1. EcrivezlecodeC#desclassesForme,Brique,CubeetBoule.
2. Deuxboulessontgalessiellesontmmecentredegravitetmmerayon.Ecrivez
lecodeajouterlaclasse Boulepourimplmentercettefonctionnalitdetest
dgalit.(Pensezutiliserlamthodeegal delaclassePoint3D).

De plus, toute forme est capable de donner sa reprsentation sous la forme dune
chane de caractres contenant le nom de sa classe et la description textuelle de
chacundesesattributs(redfinitiondelamthodeString ToString()).

Exemple:lachanedecaractresproduitepourunobjetdeclasseBrique:
[Brique
centre de gravit : [Point3D x :10.0 , y : 4.0, z : 3.0]
largeur : 10.5
longueur : 14.3
hauteur : 4.6
]

ANNEXE
public class Point3D {
double x, y, z;
public Point3D(double x, double y, double z){
this.x = x; this.y = y; this.z = z;
}
public void bouger(double vx, double vy, double vz){
x = x + vx; y = y + vy; z = z + vz;
}
public double getX(){return x;}
public double getY(){return y;}
public double getZ(){return z;}

public void setX(double v){x = v;}


public void setY(double v){y = v;}
public void setZ(double v){z = v;}
public void setXYZ(double v1, double v2, double v3){
x = v1; y = v2; z = v3;
}
public Boolean egal(Point3D p){
return (x == p.x && y == p.y && z == p.z);
}
public override String ToString(){
return "[Point3D x :" + x + " , y :" + y + ", z :" + z + "]\n";
}
2

TPProgrammationOrienteObjets

Formulespermettantdecalculerl'aireetlevolumed'unebrique
Surface 2(largeurlongueur+largeurhauteur+longueurhauteur).
Volume largeur*hauteur*longueur;

Formulespermettantdecalculerl'aireetlevolumed'uneboule
Surface 4 R 2 avecR:rayondelabouleet

4 R 3
Volume =3.14
3

Vous aimerez peut-être aussi