package jiekou1; public interface ShapePara { //定义常量PI final double PI=3.14; //定义抽象方法 //获得图形面积 double getArea(); //获得图形周长 double getCircumference(); }
package jiekou1; public class Circle implements ShapePara { //定义成员变量 public double radius; public double x; public double y; //定义构造方法 Circle(double radius) { this.radius=radius; this.x=0; this.y=0; } //定义成员方法 //返回半径的值 double getRadius() { return radius; } //写入圆心的坐标 void setCenter(double x, double y) { this.x=x; this.y=y; } //写入圆的半径 void setRadius(double radius) { this.radius=radius; } //完善得到面积和周长的方法 @Override public double getArea() { return PI*radius*radius; } @Override public double getCircumference() { return 2*PI*radius; } }
package jiekou1; public class Shape { //成员变量 private ShapePara sp; public ShapePara getSp() { return sp; } public void setSp(ShapePara sp) { this.sp = sp; } //定义成员方法获得图形面积 void getArea() { System.out.println(sp.getArea()); } //定义成员方法获得图形周长 void getCircumference() { System.out.println(sp.getCircumference()); } }
package jiekou1; public class Rect extends Shape { //定义成员变量 private double a; private double b; public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } void getArea() { System.out.println("矩形的面积为:"+a*b); } }
package jiekou1; public class Text_mianji { public static void main(String[] args) { Shape yy= new Shape(); //匿名对象 Circle cl= new Circle(5); cl.setCenter(0, 1); cl.setRadius(12); yy.setSp(cl); System.out.println("圆的圆心坐标为:("+cl.x+","+cl.y+")"); System.out.println("半径为:"+cl.radius); System.out.print("圆的面积为:"); yy.getArea(); System.out.print("圆的周长为:"); yy.getCircumference(); //实例化矩形对象 Rect re = new Rect(); re.setA(20); re.setB(12.5); System.out.println("矩形的长为:"+re.getA()+" 矩形的宽为:"+re.getB()); re.getArea(); } }