实验三类与对象
1、(1)创建一个Rectangle类,添加两个(private)属性width与height
(2)创建一个构造方法,选择width与height为形式参数。
(3)在Rectangle类中添加两个方法计算矩形的周长和面积
2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。
最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。
(一个文件中包含三个class和main)
a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的
功能。
3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。
上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250.
这个例子中,B是A的一个子类。
其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。
于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。
4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。
上例中,SubClass是SuperClass的一个子类。
其中声明了一个和父类SuperClass同名的变量x,并定义了与之相同的方法do something,这时在子类SubClass中,父类的成员变量x被隐藏,父类的方法do something被重写。
于是子类对象所使用的变量x为子类中定义的x,子类对象调用的方法do something( )为子类中所实现的方法。
程序第21行调用父类方法实现super.x的输出。
5、接口和继承的综合应用
首先定义一个接口(IShapeArea),其中包含返回面积的方法(getArea)。
然后定义一个矩形类(Rectangle)和一个圆类(Circle),并派生出一个正方形类(Square),即正方形类的父类为矩形类,三者都要求实现接口IShapeArea,自行扩充成员变量和方法(比如周长和面积)。
在主方法main中建一数组,数组中放入一些上述类型的对象,并计算它们的周长和面积之和。