1.1 实验目的
通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想的,掌握Java 面向对象编程的基础概念和编程方法,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
1.2 实验要求
编写、调试并运行Java程序,进行类的设计,掌握构造函数及类的继承的设计方法。编写的程序要体现以下4个要求:
1. 编写的程序要体现面向对象思想。
2. 编写的程序要创建类和对象,以及使用对象的方法。
3. 编写的程序要体现类的继承性(成员变量、成员方法、成员变量隐藏)。 4. 编写的程序要体现类的多态性(成员方法重载、构造方法重载)。
1.3 实验设备
PC计算机,安装Jcreater Pro或JBuilder 9或eclipse。
1.4 实验步骤
说明:请同学按顺序依次完成(1)—(4)的编写工作。将根据同学完成情况打分。 (1) 定义一个动物类,其中包括:
定义属性:名称;年龄;性别作为成员变量。 定义构造方法:对成员变量进行初始化。
定义多个方法:分别显示相应的属性值,例如getName(){System.out.print(\"
名称=\"+name+\";\"); }方法显示属性“名称”的值。
定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1。 定义一个类方法“描述”:实现将“名称;年龄;性别”一起显示。 定义一个main方法。其中,实例化一个对象,分别调用相关方法,显示
各种信息。
编译生成.class文件并运行。(请找老师检查!)
(2) 定义一个动物行为接口其中包括抽象方法:
“行动”。例如鱼实现的功能就是游,鸟就是飞。
“繁殖”。例如有下蛋,生产幼体等。 编译生成.class文件。
(3) 定义一个“青蛙”类继承动物类:
增加属性:“形态”,定义为字符串类型,表示蝌蚪还是青蛙。
定义两个构造方法:构造方法重载;其中,要将成员变量“名称”的值设
置为“青蛙类”。
覆盖父类中的方法“成长”:实现根据年龄显示是蝌蚪还是青蛙,年龄小
于10是蝌蚪,否则是青蛙。其中还要调用父类的“成长”方法,实现年龄的增加。
定义一个main方法。实例化一个父类对象,调用各种方法显示相关信息,
然后,实例化一个“青蛙”子类对象,分别调用相关方法,包括继承来的各种方法,进行覆盖后的方法等,实现多态效果,显示各种信息。 编译生成.class文件并运行。(请找老师检查!)
(4) 在(3)的基础上,使“青蛙”类实现(2)中定义的动物行为接口。
实现接口中的两个抽象方法“行动”和“繁殖”。“行动”实现功能为:根
据年龄值如果小于10显示“游”,否则显示“跳”。“繁殖”实现功能为:显示生产幼体。
定义一个main方法。其中,实例化一个“青蛙”类对象,分别调用相关
方法,实现多态调用,显示各种信息。(请找老师检查!)
1.5 实验报告
(1)各个程序运行结果报告;
(2)各个程序的源代码,要求对代码行进行注释说明;
(3)对有关类的定义、属性和方法的设计,构造函数的定义及其在初始化过程中的
应用,访问级别、封装有关概念等进行总结。
1.6 注意事项及说明
1、 认真填写实验报告
2、 遵守实验室各项制度,服从实验指导教师的安排 3、 按规定的时间完成实验 4、 建议学时数4学时
1.7 相关知识点提示
示例代码:
(1) 类的声明与定义:
[修饰符] class 类名 [extends父类] [implements接口列表] {
//声明成员变量
[修饰符] [static][final][transient] 数据类型 变量名; 例如:int a;
//定义构造方法
public类名([ 参数列表 ] ){}
//定义成员方法
[修饰符] 返回值类型 方法名([ 参数列表 ] ){} 例如:void print(){„„}
//定义main方法
public static void main(String args[]){„„} }
(2) 接口的声明与定义:
[public] interface 接口 [extends 父接口列表]
{
[public] [static] [final] 数据类型 成员变量=常量值; [public] [abstract] 返回值类型 成员方法[(参数列表)]; }
(3) 修饰符:public、protected、缺省和private
(4) 重载(overload)是指类中方法可以同名但参数列表必须不同;(注意:是不
同方法,只是方法名相同,实现的功能可能不同。)
(5) 覆盖(override)是指子类重写了父类中的同名方法。(注意:是在不同类中
定义的不同方法(一个在父类中,一个在子类中),只是方法名和参数列表相同。)
备选实验:
(1)编写一个Java程序,建立一个矩形类(名字自定),包含矩形的两个属性width
和height,以及构造方法设置width和height的初始值,定义方法getArea()计算矩形的面积,定义方法getS()计算矩形的周长。在主类main方法中,输出矩形的长、宽和面积、周长。
(2)仿照上面程序,设计一个有关圆的类,类中包含一个属性,用于表示圆的半径,
一个设置半径的方法,一个计算圆周长和面积的方法。程序输出圆的半径、周长和面积数据。
(3)类继承的设计,设计一个描述矩形的类,再设计一个描述正方形的类,要求正
方形类继承自矩形类。
(4)仿照上面关于类继承的程序,设计一个描述点的类,包含点的坐标属性和显示
点坐标的方法,再设计一个描述圆的类,要求圆类继承自点类,其中点坐标表示
圆心位置,并增加一个圆半径属性和一个显示圆周长和面积的方法。程序输出圆心坐标,圆的周长和面积。
因篇幅问题不能全部显示,请点此查看更多更全内容