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

Programmation Objet en Java : Classes et Héritage

Ce document présente un TD sur la programmation orientée objet en Java, se concentrant sur les relations entre classes. Il couvre la création de classes comme Rectangle et Robot, ainsi que l'utilisation de concepts tels que l'héritage et le polymorphisme. Des exercices pratiques sont proposés pour tester les méthodes et comprendre les interactions entre les classes.

Transféré par

Mohamed Trabelsi
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 (1 vote)
145 vues2 pages

Programmation Objet en Java : Classes et Héritage

Ce document présente un TD sur la programmation orientée objet en Java, se concentrant sur les relations entre classes. Il couvre la création de classes comme Rectangle et Robot, ainsi que l'utilisation de concepts tels que l'héritage et le polymorphisme. Des exercices pratiques sont proposés pour tester les méthodes et comprendre les interactions entre les classes.

Transféré par

Mohamed Trabelsi
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

Programmation par les objets. Travaux dirigés.

Séance 4

Programmation par les


Objets en Java
Najib TOUNSI
Relations entre classes en Java (Séance 4)

I. Relation d'utilisation
Reprendre la classe Point (avec constructeurs) du TD précédent et la compiler. Créer (nouveau
fichier, [Link]) une classe Rectangle, qui utilise cette classe Point.

class Rectangle {
private Point hg,bd ; // Les coins haut à gauche et bas à droite
// Rectangle droit

public Rectangle(){
// rectangle par défaut. Choisir son initialisation
}

public Rectangle(Point h, Point b){


// initialisation des coins à partir des paramètres données
}

public void afficher(){


// Affiche les coordonnées des coins
}

public int surface(){


// calcule de la surface
}

public void zoom(int deltax, int deltay){


// Dilatation des coordonnées. Delta donné.
}
// autres méthodes...
};

1. Programmer les méthodes et les tester. (Nouvelle classe [Link] avec


méthode main()).

2. Rajouter à la classe Point un constructeur copie


Point (Point p) {...}

et l'utiliser dans le constructeur Rectangle (Point h, Point b). Quel est l'intérêt par
rapport à avant?

3. Rajouter les méthodes appropriées set et get qui modifient et lisent les champs d'un
rectangle

4. Créer maintenant une classe Fenetre (composée d'un rectangle et d'un texte du titre ).
Imaginer des opérations utiles, comme le déplacement, l'agrandissement d'une fenêtre,
etc. Quelle opération de la classe Rectangle pourrait servir pour l'agrandissement d'une
fenêtre?

[Link] 1 of 2
Programmation par les objets. Travaux dirigés. Séance 4

II. Relation d'héritage

II.1 Essai Simple Héritage: Rajout de champ


et de méthode

1. Créer une sous-classe Robot de la classe Point (TD précédent) et qui consiste en un point
avec un champ direction (entier compris entre 1 et 4) et une méthode avancer () qui
avance le robot dans un sens selon la valeur du champ direction ( 1 monter d'un pas, 2
à droite d'un pas, 3 descendre d'un pas et 4 à gauche d'un pas.)

class Robot extends Point {


int direction; // direction actuelle

public Robot(){
super (0,0);
direction = 2; // Est
}
...
public void avancer() {
switch (direction) {
case 1: y++; break;
case 2: x++; break;
case 3: y--; break;
case 4: x--; break;
default:;
}
}
};

2. Faire un programme qui instancie un Robot, le fait avancer et imprime ensuite les
cordonnées du Robot. Utiliser toString() héritée de Point.

3. Rajouter une méthode setDirection (int d) qui change la direction d'un Robot à la
valeur d. Tester.

4. Rajouter un constructeur paramétré par trois entiers (les deux coordonnées et la


direction) et qui initialise un robot avec ces valeurs.

II.2 Essai Simple Héritage: Polymorphisme

1. Redéfinir pour un Robot la méthode toString() héritée de Point. Y rajouter aussi la


direction en plus des coordonnées x et y.

2. Tester la suite d'instructions suivante:


Point p = new Point (6,7);
[Link]([Link]());
p = r;
[Link]([Link]());

3. Constater le changement dynamique ( à l'exécution) de méthode toString() appelée pour


p dans les deux cas. D'abord celle de Point et ensuite celle de Robot, selon l'instance
référencée par p.

[Link] 2 of 2

Vous aimerez peut-être aussi