next up previous
suivant: Interface monter: Programmes Java illustrant le précédent: Exception

Classe abstraite

ClasseAbstraite.java
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
[0new Point(10,10);
  tab
[1new Carre(new Point(8,9),new Point(15,16));
  tab
[2new 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;
    
}
}
    
Java2html



Barthelemy Francois 2003-03-11