抽象、封装与类(二)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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语言与面向对象程序设计题解及实验指导》清华大学出版社

相关文档
最新文档