问题描述
1) 定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。
2) 编写矩形类Rectangle,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。
3) 编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。
解决方案
对于本题的解法,需要先了解Java的接口知识,官方给出的解释是:官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口可以拥有方法与属性也可以继承类的属性,可以与类链接,算是比较特殊的类,但是接口中的方法又都是抽象的,不能单独进行实例化,需要与类调用结合。本题先定义一个接口’Interface’,(注意新建接口时,命名前都要加大写的’I’)再在接口中使用方法’printMyWay’,注意要使用void方法;然后再建立一个新的Java的类,Rectangle,建立Squera的类时要注意对父类的继承’extend’,然后使用’implements’接入接口,再根据提议定义长宽,面积和周长,对定义的数据实例化,最后使用main进入Java程序,获得面积与周长。
结语
这是Java的基础学习的练习,难度不算大,但是要有一个清晰的逻辑建立接口和链接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(); } } |