Vous êtes sur la page 1sur 10

P.O.

O 2IM Fatma SIALA

T.D de Programmation Orientée Objet N° 1

Exercice 1 :
Ecrire un programme (ExerciceRectangle.java) qui prend en arguments (en
paramètres) la longueur
et la largeur d’un rectangle et affiche le périmètre et la surface de
celui-ci. Il faut écrire la classe Rectangle qui contient :
- deux attributs privés entiers x et y,
- un constructeur « Rectangle (int, int) »,
- une méthode « perimetre ( ) »,
- une méthode « surface () ».

Correction Exercice 1 :
class Rectangle
{
private int x,y;
public Rectangle(int a, int b)
{
x=a;
y=b;
}
public long perimetre()
{
long p;
p=(x+y)*2;
return (p);
}
public long surface()
{
long s;
s=x*y;
return (s);
}
}
public class EX1
{
public static void main(String[] args)
{
long f,e;
Rectangle R = new Rectangle(4,15);
f=R.perimetre();
System.out.println("le perimetre est "+ f);
e=R.surface();
System.out.println("la surface est "+ e);
}
}

Exercice 2 :
1) Définir une classe vecteur avec les données membres x et y et les fonctions
membres : - « afficher » : affiche les composantes d’un vecteur,
- « prod_scal » : calcule le produit scalaire de deux vecteurs et retourne le
résultat. 2) Ecrire les fonctions membres associées
3) Ajouter 2 constructeurs :
a) le premier constructeur permet d’initialiser x et y avec la même valeur, b)
le deuxième constructeur permet d’initialiser x et y avec deux valeurs différentes. 4)
Ajouter un destructeur
5) Ecrire la fonction main ( ) permettant d’initialiser deux vecteurs v1 et v 2,
d’afficher l’abscisse et l’ordonnée de chacun, de calculer leurs produits
scalaires et de l’afficher.

Correction Exercice 2 :
class Vecteur
{
private float x,y;
public Vecteur(int c)
{
x=c;
y=c;
}
public Vecteur(int c, int d)
{
x=c;
y=d;
}
public void affiche()
{
System.out.println("l'abscisse est "+x+" l'ordonnée est "+y);
}
public float prod_scal(Vecteur w)
{
return (this.x*w.x+this.y*w.y);
}
public void finalize()
{
System.out.println("l'objet est détruit");
}
}
public class EX2
{
public static void main(String[] args)
{
Vecteur V1 = new Vecteur(4);
V1.affiche();
Vecteur V2 = new Vecteur(2,3);
V2.affiche();
float f1=V1.prod_scal(V2);
System.out.println("le produit scalaire du V1 et V2 est "+f1);
}
}
Exercice 3 :
Soit un ensemble d’étudiants.
1) Définir une classe Etudiant qui se caractérise par un nom et 4
notes. 2) Ajouter un constructeur qui initialise les différents attributs
de la classe, 3) Ecrire une méthode qui affiche les notes de chaque
étudiant,
4) Ecrire une méthode qui calcule la moyenne,
5) Ecrire une méthode qui affiche si l’étudiant est « admis » ou « non admis ». 6)
Ecrire la méthode main permettant de calculer la moyenne et d’afficher le résultat
pour les deux étudiants suivants :
- Ali, 11, 13, 18, 7
- Faten, 15, 9, 8, 16

Correction Exercice 3 :
class Etudiant
{
private String nom;
private double note1,note2,note3,note4;

public Etudiant(String n, double n1, double n2, double n3, double n4)
{
nom=n;
note1=n1;
note2=n2;
note3=n3;
note4=n4;
}
public void affiche()
{
System.out.println("les notes du "+nom+" sont "+note1+ ", "+note2+",
"+note3+", "+note4);
}
public double calc_moy()
{
double moy;
moy=(note1+note2+note3+note4)/4;
return (moy);
}
public void admis(double moy)
{
String resultat;
if (moy<10)
resultat="Non Admis";
else
resultat="Admis";
System.out.println(resultat);
}
}
public class EX3
{
public static void main(String[] args)
{
double moy1,moy2;
Etudiant E1 = new Etudiant ("Ali", 11, 13, 18, 7);
E1.affiche();
moy1=E1.calc_moy();
E1.admis(moy1);
Etudiant E2 = new Etudiant ("Faten", 15, 9, 8, 16);
E2.affiche();
moy2=E2.calc_moy();
E2.admis(moy2);
}
}

Exercice 4 :
1) Réaliser une classe ​Point ​permettant de représenter un point sur un axe. Chaque
point sera caractérisé par un nom (de type ​char)​ et une abscisse (de type ​double)​ .
On prévoira : a) un constructeur recevant en arguments le nom et l’abscisse d’un
point, b) une méthode affiche imprimant (en fenêtre console) le nom du point et son
abscisse, c) une méthode translate effectuant une translation définie par la valeur de
son argument. 2) Écrire un petit programme utilisant cette classe pour :
a) créer un point,
b) en afficher les caractéristiques,
c) le déplacer,
d) en afficher à nouveau les caractéristiques.

Correction Exercice 4 :
class Point
{
private char nom;
private double abs;

public Point(char c, double x)


{
nom=c;
abs=x;
}

public void affiche()


{
System.out.println("Point du nom "+ nom +" d'abscisse "+ abs );
}

public void translate(double dx)


{
abs+=dx;
}
}

public class EX4


{
public static void main(String[] args)
{
Point a = new Point('C', 2.5);
a.affiche();
Point b = new Point('D', 5.25);
b.affiche();
b.translate(2.25);
b.affiche();
}
}

Vous aimerez peut-être aussi