面向对象程序设计实验指导书20140410(1)

2026/4/24 1:48:26

5.将语言包解压。解压后的文件夹中包含两个文件夹,features和plugins。将这两个文件夹复制到Eclipse程序目录下,覆盖原程序文件夹即可。

四、使用

- 16 -

实验二 类与对象

一、 实验目的

(1) 掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点; (2) 掌握类得封装与对象的使用;

(3) 掌握修饰符和构造方法的使用规则; (4) 掌握构造方法的使用,方法重载用于多态 (5) 掌握类的继承,方法重构与变量的隐藏 (6) 掌握接口的特点、结构、调用和继承; (7) 掌握如何创建包,通过包如何管理类; (8) 掌握Java的继承机制和实现多态的方法。

二、 实验要求

(1)编写一个体现面向对象思想的程序;

(2)编写一个创建对象和使用对象的方法的程序;

(3)编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序; (4)编写体现类的多态性(成员方法重载、构造方法重载)的程序。 (5)编写一个接口,并使用它; (6)编写自定义包的程序

三、 实验内容

(一)Java类的设计与编程

1. 创建一个 Application 应用程序 Demo2_1.java 文件。在文件中定义两个类。一个是CCircle,另一个是主类Demo2_1。

程序功能:描述一个圆类,其主要属性为半径,还有一个非常重要的常量是圆周率。该圆可以求出面积,可以设置半径和取得半径大小。 class CCircle{

static double pi; static double radius; double getRadius(){ return radius; }

static void setCircle(double r, double p){ pi=p;

radius=r; }

double getCircleArea() { return pi*radius*radius; }

- 17 -

}

public class Demo2_1{

public static void main(String args[]){ CCircle cir1=new CCircle();

CCircle.setCircle(2.0,3.1416);

System.out.println(\圆半径=\+cir1.getRadius());

System.out.println(\圆面积=\+cir1.getCircleArea()); CCircle.pi=3.14159; cir1.radius=10.0;

System.out.println(\圆半径=\+cir1.getRadius());

System.out.println(\圆面积=\+cir1.getCircleArea()); } }

【思考】

① 试述程序中两个类的各自作用。

② 类CCircle都封装了什么?求园面积的初始数据是通过那个方法实现的?请修改程序自定义构造方法

初始化数据。

③ 将class CCircle中的变量 double pi; double radius;加上private修饰符,进行编译会出现什么

问题,为什么?

④ 将void setCircle(double r, double p),double getRadius()和double getCircleArea()加上修饰

符static,重新编译会出现什么问题?仍用static,怎样修改别的地方来纠正这个错误?在main中引用这些方法时不用创建对象则怎样引用?

(二)类的继承设计

1.下面是一个具有继承的程序RectangleDemo.java。类Volume继承了父类Rectangle,主类是RectangleDemo。

public class RectangleDemo{

public static void main (String[] args){ double result;

Volume obj1=new Volume (10,20,30); result=obj1.volume ();

System.out.println (\得到的长方体体积 =\+result); result=obj1.area ();

System.out .println (\得到的长方形面积 =\+result); result=obj1.volume (10.0);

System.out.println (\立方体的体积=\+result); } }

class Rectangle{ double length; double width; double area() {

return length*width; }

Rectangle(double w,double l) {

- 18 -

length=l; width=w; } }

class Volume extends Rectangle{ double height;

Volume(double l,double w,double h){ super(l,w); height=h; }

double volume() { double vol;

vol=area()*height; return vol; }

double volume(double y) { return y*y*y; } }

【思考】

① 类RectangleDemo起何作用?Volume类 和Rectangle类之间有何关系?

② 解释类Volume中 Volume(double l, double w, double h) 的作用,super(l,w) 语句的作用; ③ 指出类Volume中方法 double volume()和double volume(double y)体现了面向对象技术的哪个

性质?

④ 如果对类Rectangle中的方法 double area()加上修饰符private,程序能否通过编译,为什么? ⑤ 写出程序运行结果;

2. 文件名为Demo2_3.java,该程序具有继承、成员的覆盖与隐藏概念。请运行该程序然后分析。 class Father{

int x=10,y=20; void speak(){

System.out.println(\+\+x+\+y); }

void calculate(String s) {

System.out.println(s+\+x+\+y+\+x*y); } }

class Son extends Father{ int x=30;

void speak(){

System.out.println(\+\+x+\+y); }

void this_super(){

super.x=100; //修改父类中的x,y值

- 19 -


面向对象程序设计实验指导书20140410(1).doc 将本文的Word文档下载到电脑
搜索更多关于: 面向对象程序设计实验指导书20140410(1) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219