1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68
|
class ClasseAbstraite{
public static void main(String[] argv){
Forme[] tab = new Forme[3];
tab[0] = new Point(10,10);
tab[1] = new Carre(new Point(8,9),new Point(15,16));
tab[2] = new Cercle(new Point(2,3),7);
for (int i=0;i<3;i++)
tab[i].translation(20,20);
for (int i=0;i<3;i++){
System.out.println("forme " + i + ": " +tab[i].versChaine());
System.out.println("--------------------------");
}
}
}
abstract class Forme{
abstract void translation(int dx, int dy);
abstract String versChaine();
}
class Point extends Forme{
int x;
int y;
Point(int a, int b){
x=a;
y=b;
}
void translation(int dx, int dy){
x=x+dx;
y=y+dy;
}
String versChaine(){
return "("+x+","+y+")";
}
}
class Carre extends Forme{
Point hautgauche;
Point basdroite;
Carre(Point p1, Point p2){
hautgauche = p1;
basdroite = p2;
}
void translation(int dx, int dy){
hautgauche.translation(dx,dy);
basdroite.translation(dx,dy);
}
String versChaine(){
return "Carre " + hautgauche.versChaine() + " " +
basdroite.versChaine();
}
}
class Cercle extends Forme{
Point centre;
int rayon;
Cercle(Point p, int r){
centre=p;
rayon=r;
}
void translation(int dx, int dy){
centre.translation(dx,dy);
}
String versChaine(){
return "Cercle centre:" + centre.versChaine() + " rayon:" + rayon;
}
}
|