设计一个类系,反映如图所示各对象之间关系 
要求:
1Area为抽象类
2反映出类系之间的关系;
3Area类中包含了与形状有关的方法:获取X、Y的坐标值,每个形状都可以计算面积和周长
4子类RoundArea类:构造函数接收形状关键参数
5子类RectArea类:构造函数接收形状关键参数和X、Y坐标值

解决方案 »

  1.   


    //不好意思,困的不行了,如果要搞坐标,你直接往类里填代码就可以了,我这边先睡了.安./*1Area为抽象类 
    2反映出类系之间的关系; 
    3Area类中包含了与形状有关的方法:获取X、Y的坐标值,每个形状都可以计算面积和周长 
    4子类RoundArea类:构造函数接收形状关键参数 
    5子类RectArea类:构造函数接收形状关键参数和X、Y坐标值 */
    public abstract class Area {
      public double getX();
      public double getY();
      public double area();
    }
    public class RectArea extends Area {
      private double x,y;
      RectArea(double x, double y) {
        this.x = x;
        this.y = y;
      }
      public double getX() {return x;}
      public double getY() {return y;}
      public double area() {
        return x * y;
      }
    }
    public class RoundArea extends Area {
      private double r;
      public double area() {
        return 3.14 * r * r;
      }
    }
      

  2.   

    这题不用看图也可以做的,我已经在要求的几点说明了关系!3楼的答案跟我开始做的大同小异,只是要求3:Area类中包含了与形状有关的方法:获取X、Y的坐标值,每个形状都可以计算面积和周长。这就应该要有多种形状(矩形、三角形、圆形、梯形等)的计算方法才行!所以我才有点摸不着头脑!
      

  3.   

       java多态实际上意义是:你不知道最终用的会是什么图形类,但是肯定是图形类的子类。而每个特殊的图形类的area方法都覆盖或者实现了图形类的area方法。实际上你引用什么类,就用什么类的方法。声明时候,Area area =new RectArea ()就可以了
      

  4.   

    public abstract class Area 
    { public double getX();
      public double getY();
      public double 面积();
      public double 周长();
    }public class RectArea extends Area 
    { double x,y,a,b;
      RectArea(double xx, double yy) 
      { this.x = xx;
        this.y = yy;}
      public double getX() {return a;}
      public double getY() {return b;}
      public double 面积() {return x * y;}
      public double 周长() {return 2*(x+y);}
    }public class RoundArea extends Area 
    { double r;
      RoundArea(double rr)
      { this.r = rr;}
      public double 面积() {return 3.14 * r * r;}
      public double 周长() {return 3.14 * r * 2;}
    }public class Test
    { public static void main(String args[])
      { RoundArea A=new RoundArea(2.00);
        System.out.println("圆面积: "+A.面积());
        System.out.println("圆周长: "+A.周长());
        RectArea B=new RectArea(3.00,4.00);
        RectArea C=new RectArea();
        C.x=5.00;
        C.y=6.00;
        System.out.println("矩形面积: "+B.面积());
        System.out.println("矩形周长: "+B.周长());
        System.out.println("坐标X=: "+C.getX());
        System.out.println("坐标Y=: "+C.getY());
       }
    }  
    LZ,这样可以不?是不是大概这样!
      

  5.   

    怎么有点像THINKING JAVA 里的阿
      

  6.   

    只给一个算面积的,算周长的要楼主自己写吧。
    另外我要说一下,我没有编译。
    有错自己调。public public abstract class Area {
             public double getX(); 
             public double getY(); 
    public double  calculateArea();
    public double zhouchang();
    }public class RoundArea extends Area{
    private double r=0;
    public RoundArea (double x, double y,double r) {
                    this.x=x;
                    this.y=y;
      this.r = r;
    }

    public double  calculateArea() {
    return Math.PI*r*r;
    }
    public double getX(){return x;}
    public double getY(){return y};
    }public class RectArea extends Area{
    private double width=0;
    private double height=0;

    public RectArea (double x,double y,double width, double height) {
                    this.x=x;
                    this.y=y;
    this.width = width;
    this.height = height;
    }

    public double calculateArea() {
    return width*height;
    }
    public double getX(){return x;}
    public double getY(){return y};}public class Test {
    public static void main(String[] args) {
    RoundArea c = new RoundArea (1,1,5.6);
    System.out.println("Circle的面积为:"+c.calculateArea()+"坐标为:"+"("+c.getX()+","+c.getY()+")");
    RectArea r = new RectArea (3,3,4.3,6.8);
    System.out.println("Rectangle的面积为:"+r.calculateArea()+"坐标为:"+"("+r.getX()+","+r.getY()+")"); }
    }