TP2: Factor out common code in the abstract class.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 15 Feb 2018 13:40:49 +0000 (14:40 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 15 Feb 2018 13:40:49 +0000 (14:40 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
TP2/Cercle.java
TP2/Forme.java
TP2/Image.java
TP2/Segment.java

index f13be69..62772da 100644 (file)
@@ -1,22 +1,17 @@
 
 class Cercle extends Forme {
-    private Point pOri;
     private double rayon;
 
     Cercle(Point pO, double r) {
-        pOri = pO;
+        super(pO);
         rayon = r;
     }
 
     public void dessiner(Piletransformations pile) {
         String className = this.getClass().getSimpleName();
         Point pTrans = pile.getCurrentTransformation();
-        Point pOriTrans = pOri.additionner(pTrans);
-        System.out.println(className + " " + pOri.toString() + "->" + pOriTrans.toString() + " " + rayon);
-    }
-
-    public void deplacer(Point p) {
-        pOri = pOri.additionner(p);
+        Point pOriTrans = super.getpOri().additionner(pTrans);
+        System.out.println(className + " " + super.getpOri().toString() + "->" + pOriTrans.toString() + " " + rayon);
     }
 
 }
index df9fc44..0e08ddf 100644 (file)
@@ -1,7 +1,22 @@
 
-abstract class Forme {
+public abstract class Forme {
+    private Point pOri;
 
-    abstract public void dessiner(Piletransformations pile);
-    abstract public void deplacer(Point p);
+    public abstract void dessiner(Piletransformations pile);
 
+    Forme() {
+        pOri = new Point();
+    }
+
+    Forme(Point p) {
+        pOri = p;
+    }
+
+    public Point getpOri() {
+        return pOri;
+    }
+
+    public void deplacer(Point p) {
+        pOri = pOri.additionner(p);
+    }
 }
index 8f10393..6ec38bf 100644 (file)
@@ -1,18 +1,17 @@
 
 class Image extends Forme {
     final int IMAGE_MAX_SIZE = 100;
-    Point pOri;
     Forme[] formeCollection;
     int formeNumber;
 
     Image() {
-        pOri = new Point();
+        super();
         formeCollection = new Forme[IMAGE_MAX_SIZE];
         formeNumber = 0;
     }
 
     Image(Point p) {
-        pOri = p;
+        super(p);
         formeCollection = new Forme[IMAGE_MAX_SIZE];
         formeNumber = 0;
     }
index a421af7..5fd0d73 100644 (file)
@@ -1,6 +1,5 @@
 
 class Segment extends Forme {
-    private Point pOri;
     private Point pDest;
 
     /* Segment() {
@@ -9,21 +8,21 @@ class Segment extends Forme {
     } */
 
     Segment(Point pO, Point pD) {
-        pOri = pO;
+        super(pO);
         pDest = pD;
     }
 
     public void dessiner(Piletransformations pile) {
         String className = this.getClass().getSimpleName();
         Point pTrans = pile.getCurrentTransformation();
-        Point pOriTrans = pOri.additionner(pTrans);
+        Point pOriTrans = super.getpOri().additionner(pTrans);
         Point pDestTrans = pDest.additionner(pTrans);
-        System.out.println(className + " " + pOri.toString()+ "->" + pOriTrans.toString() + " " +
+        System.out.println(className + " " + super.getpOri().toString()+ "->" + pOriTrans.toString() + " " +
                            pDest.toString() + "->" + pDestTrans.toString());
     }
 
     public void deplacer(Point p) {
-        pOri = pOri.additionner(p);
+        super.deplacer(p);
         pDest = pDest.additionner(p);
     }