UNIVERSITE IBN ZOHR SMI5
Faculté des sciences – Département Informatique « M31 : Conception Orientée Objets »
TD/TP 2
public class Point {
private int x;
private int y;
public Point() {
this(0,0);
// appel du constructeur avec 1 paramètre
//this(0);
}
public Point(int a, int b) {x = a; y = b;}
public Point(int x) {
// méthode 1
this.x = x; this.y=0;
// méthode 2
//this(x,0);
}
/*public String toString(){
return "(" + x + "," + y + ")" ;
}*/
public void setX(int p) {
x = p;
}
public void setY(int p) {
y = p;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public boolean equals(Point a){
return (this.x==a.x && this.y==a.y);
}
public boolean equals(Object a){
return (this.x == ((Point)a).x && this.y == ((Point)a).y ) ;
}
};
class Rectangle { // Rectangle droit
private Point hg ; // Le coin haut à gauche
private Point bd ; // Le coin bas à droite
public Rectangle() {
// rectangle par défaut. Choisir son initialisation
}
public Rectangle(Point h, Point b) {
// initialisation des coins à partir des paramètres données
[Link]([Link]()); [Link]([Link]()); // Ponit hg
[Link]([Link]()); [Link]([Link]()); // Point bd
}
public void afficher() {
// Affiche les coordonnées des coins
[Link]("Coin haut à gauche: "+"("+[Link]()+","+[Link]()+")");
[Link]("Coin bas à droite: "+"("+[Link]()+","+[Link]()+")");
}
public int surface() {
// calcule de la surface
return (([Link]()-[Link]()) * ([Link]()-[Link]()));
}
public void zoom(int deltax, int deltay) {
// Dilatation des coordonnées. Delta donné.
[Link]([Link]()-deltax); [Link]([Link]()+deltax);
[Link]([Link]()+deltay); [Link]([Link]()-deltay);
}
// autres méthodes...
}
public class Moteur {
private String nom;
private int puissance;
private Voiture laVoiture; //Q.5) Navigation bidirectionnelle
public Moteur(){
this(80);
}
public Moteur(int p){
[Link] = p;
}
/*
* Q.5) Navigation bidirectionnelle
*/
/*public Moteur(Voiture laVoiture){
this(80);
[Link] = laVoiture;
}*/
2/5
/*
* Q.5) Navigation bidirectionnelle
*/
/*public Moteur(int p, Voiture laVoiture){
[Link] = p;
[Link] = laVoiture;
}*/
public int getPuissance(){
return [Link];
}
public void setPuissance(int p){
[Link] = p;
}
public String getNom(){
return [Link];
}
public void setNom(String nom){
[Link] = nom;
}
}
public class Roue {
private int largeur;
private int diametreJante;
public Roue(){
this(200,15);
}
public Roue(int largeur, int diametreJante){
[Link] = largeur;
[Link] = diametreJante;
}
public int getLargeur(){
return [Link];
}
public void setLargeur(int largeur){
[Link] = largeur;
}
public int getDiametreJante(){
return [Link];
}
public void setDiametreJante(int diametreJante){
[Link] = diametreJante;
}
}
public class Voiture {
private String modele;
private String marque;
3/5
private double vitesse;
private boolean estDemaree;
private Moteur leMoteur;
private Roue[] les4Roues;
private Roue roueDeSecours;
public Voiture() {
//var i = 1;
[Link] = false;
[Link] = 0;
/* Appel du constructeur Moteur puisqu'il s'agit d'une composition
* leMoteur est instancié au moment de l'instantiation de la Voiture
*/
[Link] = new Moteur();
/* Création du tableau de 4 Roues
* l'affectation des Roues se fera soit par les setters ou par constructeur avec
paramètres
* Agrégation ==> on n'instantie pas les Roues au moment où on instancie la
Voiture
*/
this.les4Roues = new Roue[4];
/* La roueDeSecours est optinnelle: soit elle initialisée par null
* Soit initialisée par un setter ou par un constructeur avec paramètres
*/
[Link] = null;
}
public Voiture(int p, Roue roueDeSecours, Roue[] les4Roues){
[Link] = false;
[Link] = 0;
[Link] = new Moteur(p);
[Link] = roueDeSecours;
les4Roues = new Roue[4];
for(int i=0; i<4; i++){
this.les4Roues[i] = les4Roues[i];
}
}
/*
* Q.5) Navigation bidirectionnelle
*/
/*public Voiture(){
[Link] = false;
[Link] = 0;
[Link] = new Moteur(this);
[Link] = null;
}*/
/*
4/5
* Q.5) Navigation bidirectionnelle
*/
/*public Voiture(int p, Roue roueDeSecours, Roue[] les4Roues){
[Link] = false;
[Link] = 0;
[Link] = new Moteur(p,this);
[Link] = roueDeSecours;
les4Roues = new Roue[4];
for(int i=0; i<4; i++){
this.les4Roues[i] = les4Roues[i];
}
}*/
public void setRoueDeSecours(Roue roueDeSecours){
[Link] = roueDeSecours;
}
public void setLes4Roues(Roue[] les4Roues){
for(int i=0; i<4; i++){
this.les4Roues[i] = les4Roues[i];
}
}
public void changerLeMoteur(Moteur leMoteur){
[Link] = leMoteur;
}
public int deQuellePuissance() {
return [Link]();
}
public void demare(){
estDemaree = true;
}
public void arrete(){
estDemaree = false;
}
public void accelere(double vitesse){
if (estDemaree) {
[Link] = [Link] + vitesse;
}
}
public String getModele(){
return [Link];
}
public void setModele(String modele){
[Link] = modele;
}
public String getMarque(){
return [Link];
}
public void setMarque(String marque){
[Link] = marque;
}
}
5/5