Java上机作业03
题目:
定义IShape接口,包含两个方法:
·getArea(求面积方法):没有参数,返回double类型值;
·getPerimeter(求周长方法):没有参数,返回double类型值。
public interface IShape {
public abstract double getArea() ;
public abstract double getPerimeter();
}
定义IDiagArea接口,继承IShape接口,新增方法:·getDiagonal(求对角线方法):没有参数,返回double类型值。
public interface IDiagArea extends IShape{
public abstract double getDiagonal();
}
定义MyRectangle(长方形类),实现IShape接口,并添加以下内容:属性:长、宽,double类型构造方法:两个参数,根据参数的值为属性赋值。output方法:调用成员方法计算并输出长方形的相关信息(长、宽、面积、周长)。
public class MyRectangle implements IShape{
double l;
double w;
public MyRectangle(double l,double w) {
this.l=l;
this.w=w;
}
public double getArea() {
return l*w;
}
public double getPerimeter() {
return 2*(l+w);
}
public void output() {
System.out.println("该长方形的相关信息如下:");
System.out.println("长为:"+this.l+",宽为:"+this.w);
System.out.println("该长方形的面积是"+this.getArea()+",该长方形的周长是"+this.getPerimeter());
}
}
定义MySquare(正方形类),继承MyRectangle类,实现IDiagArea接口,并添加以下内容:构造方法:1个参数,调用父类的构造方法把长、宽设置为相等(即边长),为参数的值。
重写output方法:调用成员方法计算并输出长方形的相关信息(边长、面积、周长、对角线长度)(开根号可调用Math.sqrt(double a)的方法)
public class MySquare extends MyRectangle implements IDiagArea{
public MySquare(int z) {
super(z,z);
}
public double getDiagonal() {
return Math.sqrt(2*l*w);
}
public void output() {
System.out.println("该正方形的相关信息如下:");
System.out.println("边长为:"+this.l);
System.out.println("该正方形的面积是"+this.getArea()+",该长方形的周长是"+this.getPerimeter()+",对角线的长度是"+this.getDiagonal());
}
}
定义测试类Demo,编写main方法,新建MyRectangle、MySquare对象,并分别调用它们的output方法。
public class Demo {
public static void main(String[] args) {
MyRectangle r=new MyRectangle(3,4);
MySquare s=new MySquare(5);
r.output();
s.output();
}
}