1. 定义长方形类与圆形类Circle
长方形类-类名:Rectangle
,private属性:int width,length
圆形类-类名:Circle
,private属性:int radius
编写构造函数:
带参构造函数:Rectangle(width, length)
,Circle(radius)
编写方法:public int getPerimeter()
,求周长。public int getArea()
,求面积。toString
方法,使用Eclipse自动生成。
注意:
Math.PI
。int
再返回。2. main方法
Arrays.deepToString
分别输出上面建立的Rectangle数组与Circle数组思考:如果初次做该题会发现代码冗余严重。使用继承、多态思想可以大幅简化上述代码。
输入样例:
1 2
3 4
7
1
输出样例:
69
170
[Rectangle [width=1, length=2], Rectangle [width=3, length=4]]
[Circle [radius=7], Circle [radius=1]]
import java.util.*;//导入 java.util包中的类接口,假如你没这句话的话 如果你要用java.util包中的 类Scanner的话你就需要这样使用 java.util.Scanner sc = new java.util.Scanner();而import java.util.*;代表你导入了java.util包中的所有类,,这样的话你使用 Scanner就没那么麻烦了Scanner sc = new Scanner();
import java.lang.Math;//包含用于执行基本数学运算的方法
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
Rectangle rect[]=new Rectangle[2];//new两个长方形对象
Circle cir[]=new Circle[2];
int i;
//输入长宽
for(i=0;i
1.
Rectangle(int width,int length)
{
this.width=width;
this.length=length;
}
为什么需要写此部分代码,作用何在:
我在网上也没有搜到相关的解释,以下为本人自己的一些想法,勿喷。
我们定义了长方形的类,然后在Main()函数中我们new了新的对象,也就是说,现在在内存空间里,已经分配了部分空间给长方形对象,我们从键盘输入了相应的长和宽,那么,要想将数据传到对象中去,就得调用函数Rectangle(int width,int length)。
2.Rectangle rect[]=new Rectangle[2];
此代码的意思就是new了一个数组,该数组是Rectangle类型的,不属于java基本类型,该数组的长度为2,即数组内存的是两个长方形对象的地址,指向两个长方形对象,而在长方形对象内存地址中,存储着长和宽等信息。
3.@Override
@Override 的作用是:如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override 系统可以帮你检查方法的正确性。
Override的用法:Override:java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。
4.System.out.println(Arrays.deepToString(cir));
Arrays.deepToString()主要用于数组中还有数组的情况