抽象、封装与类(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
抽象、封装与类(二)
学生姓名:学号:专业班级:
实验类型:□验证□综合□设计□创新实验日期:实验成绩:
一、实验项目名称
抽象、封装与类(二)
二、实验目的
1、熟练掌握属性的定义和静态属性、最终属性的使用。
2、熟练掌握方法的定义和静态方法、抽象方法、最终方法的使用。
三、实验基本原理
在计算机技术的软件开发方法中所使用的抽象有两类:一类是过程抽象,另一类是数据抽象。
过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤。面向过程的软件开发方法采用的就是这种抽象方法。数据抽象是与过程抽象不同的抽象方法,它把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包括了针对这些数据的授权操作,是相对于过程抽象更为严格、也更为合理的抽象方法。
封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流和交互。封装使得抽象数据类型对内成为一个结构完整,可自我管理、自我平衡、高度集中的整体;对外则是一个功能明确、接口单一、可在各种合适的环境下都能独立工作的右击的单元。
Java程序设计就是定义类的过程,但是Java程序中定义的类的数目和功能都是有限的,编程时还需要用到大量的系统定义好的类,即Java类库中的类。
类库是Java语言的重要组成部分。Java语言由语法规则和类库两部分组成,语法规则确定Java 程序的书写规范;类库,或称为运行时库,则提供了Java程序与运行的系统软件(JVM)之间的接口。系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。用户程序定义自己的类有定义类头和定义类体两个步骤,其中类体又由属性(域)和方法组成。
四、主要仪器设备及耗材
计算机一台、my Eclipse软件
五、实验步骤
(1)打开My Eclipse,新建工程和类。分别输入本实验的代码。
(2)按照实验的需求,输入如下代码:
编写一程序,完成以下工作:
定义一个圆类Circle,成员变量有最终静态属性圆周率PI、半径radius,成员方法有自定义构造方法、获取半径getRadius()、修改半径updateRadius()、计算面积area() 。
再定义一个圆锥类Taper,成员变量有底bottom、高height,成员方法有自定义构造方法、获得底圆半径getBottomR()、修改底圆半径updateBottomR()、获得高getHeight()、修改高updateHeight()、计算体积volume()。
最后写一测试类,测试自定义圆类Circle、圆锥类Taper是否正确。
1、定义圆类Circle
class Circle {
static final double pi=3.1415926;
private double radius;
public double area;
public Circle(double radius){
this.radius=radius;
}
public double getRadius()
{
return radius;
}
public void updateradius(double r)
{
r=radius;
}
public double getArea()
{
return pi*radius*radius;
}
}
2、定义圆锥类Taper
class Taper extends Circle
{
private double height;
public Taper(double bottom,double height)
{
super(bottom);
this.height=height;
}
double getBottomR()
{
return getRadius();
}
public void updateBottomR(double R)
{
updateradius(R);
}
double getHeight()
{
return height;
}
public void updateHeight(double H)
{
H=height;
}
double getVolume()
{
return getArea()*height/3.0;
}
}
3、测试类
public class shape {
public static void main(String[] args) {
Circle c=new Circle(10.0);
System.out.println("The Circle's area is"+c.getArea());
Taper t=new Taper(5.0,6.0);
System.out.println("The Taper's volume is"+t.getVolume());
}
}
六、实验数据及处理结果
七、思考讨论题或体会或对改进实验的建议
因为圆锥的底部是一个圆形,所以让它继承前面的圆形的代码,这样在计算圆锥形体积的时候,可以直接调用圆的面积计算公式,增加代码的复用性。
八、参考资料
《Java语言与面向对象程序设计》清华大学出版社
《Java语言与面向对象程序设计题解及实验指导》清华大学出版社