本文转自微信公众号:"算法与编程之美"
一、问题描述
1) 定义接口Printx
,其中包括一个方法printMyWay()
,这个方法没有形参,返回值为空。
2) 编写矩形类Rectangle
,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay
()方法要能显示矩形的边长、面积和周长。
3) 编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()
方法,要求该方法能显示正方形的边长、面积、周长和对角线长。
二、解决方案
对于本题的解法,需要先了解Java的接口知识,官方给出的解释是:官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口可以拥有方法与属性也可以继承类的属性,可以与类链接,算是比较特殊的类,但是接口中的方法又都是抽象的,不能单独进行实例化,需要与类调用结合。本题先定义一个接口' Interface
',(注意新建接口时,命名前都要加大写的'I')再在接口中使用方法'printMyWay'
,注意要使用void
方法;然后再建立一个新的Java的类,Rectangle
,建立Squera
的类时要注意对父类的继承' extend'
,然后使用' implements'
接入接口,再根据提议定义长宽,面积和周长,对定义的数据实例化,最后使用main
进入Java程序,获得面积与周长。
三、代码清单
Interface接口:
package cn.edu.sctu.java20.homework.Printx;
public interface IPrintx {
void printMyWay();
}
Rectangle的类:
package cn.edu.sctu.java20.homework.Printx;
public class Rectangle implements IPrintx{
double width;
double length;
double perimeter;
double area;
public void SetLength(double width1,double length1){//传参
this.width = width1;
this.length = length1;
}
double getArea(){
area = length*width;
return area;
}
double getPerimeter(){
perimeter = length*2+width*2;
return perimeter;
}
@Override
public void printMyWay(){
System.out.println("长为:"+length+"宽为:"+width+"周长为:"+perimeter+"面积为:"+area);
};
public static void main(String[] args) {
Rectangle rectangle = new Rectangle();
rectangle.SetLength(6,4);
rectangle.getArea();
rectangle.getPerimeter();
rectangle.printMyWay();
}
}
Square
package cn.edu.sctu.java20.homework.Printx;
public class Square extends Rectangle {//继承Rectangle的属性与方法
double diagonal;
public void setDiagonal(double diagonal1){
this.diagonal = diagonal1;
}
double getDiagonal(){
diagonal = Math.sqrt(width*width + length*length);
return diagonal;
}
@Override
public void printMyWay(){
System.out.println("长为:"+length+"宽为:"+width+"周长为:"+perimeter+"面积为:"+area+"对角线为:"+diagonal);
};
public static void main(String[] args) {
Square square = new Square();
square.SetLength(6,6);
square.getDiagonal();
square.getArea();
square.getPerimeter();
square.printMyWay();
}
}
到此这篇关于关于Java Interface接口的简单练习题的文章就介绍到这了,更多相关Java Interface接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!