Newsgroup: it.comp.java
Titolo: Aiuto Ereditarietà e Polimorfismo

Devo svolgere un esercizio che mi chiede di scrivere una gerarchia di classi
Shape-Point-Rectangle-Triangle, Si deve consentire all'utente di specificare
la posizione, la dimensione, la forma e il carattere di riempimento per ogni
forma geometrica. L'utente può specificare molte figure geometriche dello
stesso tipo. Nella creazione di ogni figura bisogna porre in un array un
riferimento Shape a ogni nuovo oggetto Shape. Ogni classe possiede un metodo
draw. Ora si dovrebbe scrivere un programma di gestione dello schermo
polimorfico che attraverso l'array inviando messaggi draw a ciascun oggetto
dell'array, per formare un'immagine sullo schermo. Bisogna tracciare
nuovamente l'immagine sullo schermo ogni volta che viene specificata una
nuova figura geometrica.
Ora io ho provato a a scrivere la gerarchi di classi in questo modo:
                                        Shape
                                            |
                                         Point
                                |                         |
                          Rectangle            Triangle
E qua sotto vi allego le classi, a questo punto mi blocco non so come
proseguire come dovrei fare? Le classi mi vengono compilate senza errori ma
non so fino a che punto sono giuste. Vi prego aiutatemi ho un esame a breve
AIUTO!!!!!!!
//classe shape
public abstract class Shape extends java.lang.Object {
    public int area(){
        return 0;
    }
    public abstract String getName();
}
//classe Point
public class Point extends Shape {
    protected int x, y, d, dd, xm, ym;
    /** Creates a new instance of Point */
    public Point() {
        setPoint (0, 0);
    }
    public Point (int a, int b){
        setPoint (a, b);
    }
    public void setPoint( int a, int b){
        x = a;
        y = b;
    }
    public void setX(int a){
        x = a;
    }
    public void setY(int b){
        y = b;
    }
    public int getX() {
        return x;
    }
    public int getY(){
        return y;
    }
    public int distanza(Point a, Point b){
       d = (int) Math.pow ((a.getX() - b.getX()), 2) + (int)
Math.pow((a.getY() - b.getY()), 2);
       dd = (int) Math.pow(d, 0.5);
       return dd;
    }
    public Point medio (Point a, Point b){
        Point m = new Point();
        x = (a.getX() + b.getX())/2;
        y = (a.getY() + b.getY())/2;
        setPoint (xm, ym);
        return m;
    }
    public String toString (){
        return "[" + x + ", " + y + "]";
    }
    public String getName() {
        return "Punto";
    }
}
//Classe Rectangle
import java.awt.Graphics;
public class RectangleII extends Point {
   protected int lunghezza, larghezza, perimetro, area;
    /** Creates a new instance of RectangleII */
    public RectangleII() {
        setDimension (0, 0);
    }
    public RectangleII (int a, int b, int l, int h){
        super (a, b);
        setDimension (l, h);
    }
    public void setDimension (int l, int h){
        setLength (l);
        setWidth (h);
    }
    public void setLength (int l){
        lunghezza = l;
    }
    public void setWidth (int h){
        larghezza = h;
    }
    public int getLength (){
        return lunghezza;
    }
    public int getWidth() {
        return larghezza;
    }
    public int perimetro(){
        perimetro = (lunghezza + larghezza) * 2;
        return perimetro;
    }
    public int area(){
        area = lunghezza * larghezza;
        return area;
    }
    public void draw (Graphics g){
        g.drawRect(getX(), getY(), getLength(), getWidth());
    }
    public String getName(){
        return "Rettangolo";
    }
}
//Classe Triangle
import java.awt.Graphics;
public class Triangle extends Point{
    protected int base, altezza, perimetro, area, k;
    protected Point v, vv, vb, vi;
    /** Creates a new instance of Triangle */
    public Triangle() {
        setDimension (0, 0);
    }
    public Triangle (int a, int c, int b, int h){
        super (a, c);
        setDimension (b, h);
    }
    public void setDimension (int b, int h){
        setBase (b);
        setHeight (h);
    }
    public void setBase(int b){
        base = b;
    }
    public void setHeight(int h){
        altezza = h;
    }
    public int area(){
        area = (base * altezza)/2;
        return area;
    }
    public void vertici (){
        k = base / 2;
        v.setX( getX() + k);
        v.setY( getY());
        vv.setX(v.getX());
        vv.setY(v.getY() + altezza);
        vb.setX(getX() + base);
        vb.setY(getY());
        vi.setX(getX());
        vi.setY(getY());
    }
    public int perimetro(){
        perimetro = distanza (vv, vb) + distanza(vi, vv) + distanza(vi, vb);
        return perimetro;
    }
    public void draw (Graphics g){
        g.drawLine(getX(), getY(), vb.getX(), vb.getY());
        g.drawLine(getX(), getY(), vv.getX(), vv.getY());
        g.drawLine(vb.getX(), vb.getY(), vv.getX(), vv.getY());
    }
    public String getName(){
        return "Triangolo";
    }
}

 ha scritto nel messaggio
news:_YaW9.64415$AA2.2...@news2.tin.it...


                           Rectangle                     Triangle
Un design nel quale rettangoli e triangoli sono punti non mi
pare molto corretto...