• Aucun résultat trouvé

I . R ELATION D' UTILISATION

N/A
N/A
Protected

Academic year: 2022

Partager "I . R ELATION D' UTILISATION "

Copied!
2
0
0

Texte intégral

(1)

P ROGRAMMATION P AR L ES O BJETS E N J AVA

Najib TOUNSI

Relations entre  classes en Java (Séance 4)

I . R ELATION D' UTILISATION

Reprendre la classe Point (avec constructeurs) du TD précédent et la compiler. Créer (nouveau fichier,

Rectangle.java

)  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...

};

Programmer les méthodes et les tester. (Nouvelle classe

TestRectangle.java

avec méthode main()).

1.

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?

2.

Rajouter les méthodes appropriées

set

et

get

qui modifient et lisent les champs d'un rectangle 3.

Créer maintenant une classe

Fenetre

  (composée d'un rectangle et d'un texte pour le titre de la fenêtre).

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?

4.

II . R ELATION D' HÉRITAGE

II . 1 E

SSAI

S

IMPLE

H

ÉRITAGE

: R

AJOUT

D

E

C

HAMP

E

T

D

E

M

ÉTHODE

Créer une sous-classe

Robot

de la classe

Point

(TD précédent) et qui consiste en un point avec un champ 1.

Programmation par les objets. Travaux dirigés. Séance 4

https://www.emi.ma/ntounsi/COURS/Java/TD/tdJava4.html 1 of 2

(2)

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:;

} } };

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

(elle même héritée de

public String toString()

de

Object

, et redéfinie dans

Point

) . 2.

Rajouter une méthode

setDirection (int d)

qui change la direction d'un

Robot

à la valeur d. Tester.

3.

Rajouter un constructeur paramétré par trois entiers (les deux coordonnées et la direction) et qui initialise un robot avec ces valeurs.

Question : Peut-on dans ce cas supprimer le constructeur défaut

Robot()

? Tester pour vérifier.

(Réponse : oui, à condition de ne pas l'appeler en faisant

new Robot()

, car sinon c'est le nouveau

constructeur avec paramètres qui sera trouvé, et comme il ne correspond pas c'est une erreur de compilation.

Dit autrement, le constructeur défaut hérité

Point()

est utilisé pour l'appel

new Robot()

si aucun constructeur n'est défini dans la sous-classe

Robot

)

4.

  II . 2 E

SSAI

S

IMPLE

H

ÉRITAGE

: P

OLYMORPHISME

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.

1.

Tester la suite d'instructions suivante:

Point p = new Point (6,7);

System.out.println(p.toString());

p = r;

System.out.println(p.toString());

2.

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

.

3.

Programmation par les objets. Travaux dirigés. Séance 4

https://www.emi.ma/ntounsi/COURS/Java/TD/tdJava4.html 2 of 2

Références

Documents relatifs

B.A.C PROFESSIONNEL TECHNICIEN CONSTRUCTEUR BOIS 2015 - 2016 Fabrication d’un ouvrage / Dossier technique 3/11..  L’ouvrage à réaliser est une cabane en ossature bois qui

// creation d’une instance d’objet de type PolyLineaire /* Rappel : une creation d’objet se fait par

Cette villa de plain-pied dispose de différentes entrées. Dès votre entrée, vous faites face à un gigantesque espace de vie de plus de 80 m2. Il comprend un salon, une cuisine,

Proton, créé en 1983, naît de la volonté du Premier Ministre, le Dr Mahathir, de créer une industrie automobile nationale, autant pour des raisons économiques que pour des raisons

Participation au projet de déploiement de la plate-forme LANDESK Prise de main à distance avec Dameware NT, VNC, LANDESK Support niveau 2 auprès des utilisateurs (1200 postes

Origano matt lacquered base unit with central groove, MLL 0.7 washbasin and Cristalplant mirror, 2.8 cm thick, with top and bottom LED backlighting on both sides... 46

Cette villa de plain-pied dispose de différentes entrées. Dès votre entrée, vous faites face à un gigantesque espace de vie de plus de 80 m2. Il comprend un salon, une cuisine,

| Sassenage| Lycée Roger Deschaux| 04 76 85 96 10JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ | Vienne| Lycée Galilée| 04 74 53 00 13JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ | Voiron| LP