工学院计算机系 Java程序设计 实验指导
实验七 对象、构造和使用类
一、实验目的
通过本次实验,掌握规范的类定义形式、能正确的创建对象和使用对象。 二、实验内容
1.通过类定义和对象的创建、使用,实现输出如下个人信息:“刘阳,男,身高170.0cm。” 算法分析:
1)定义一个People类,类体内容的变量定义部分定义了1个double类型变量 “sg” (身高)、两个字符串类型变量“xm” (姓名)、 “xb” (性别),和一个方法“rwjj” (人物简介)用来输出个人信息。
2)定义一个主类PeopleDemo,并在主类中调用缺省构造方法定义一个People类的对象xPeople,要求调用rwjj方法输出以下语句“刘阳,男,身高170.0cm。” 2.使用构造方法的实验。 算法分析:
1)在People类中增加一个带参数的构造方法,要求能够接收xm、xb和sg信息。 2)在主类PeopleDemo中调用该构造方法定义对象yPeople,输出信息如下:“李莉,女,身高165cm。” 三、实验步骤
1、启动JCreator3.50。
2、新建一个项目,项目名称为ch07,存放在自己建立的文件夹下(文件夹名为学号+姓名的拼音,例如01xuting)。
3、通过选择[文件]菜单中的[新建文件]命令,实现创建Java运行程序。 四、通过类定义和对象的创建、使用,实现输出如下个人信息:“刘阳,男,身高170.0cm。”
通过选择[文件]菜单中的[新建文件]命令,实现以下实例内容。 通过练习掌握规范的类定义的形式。
源程序名:PeopleDemo .java,以下操作均在PeopleDemo .java中实现! 1.定义一个People类,类体内容的变量定义部分定义了1个double类型变量 “sg” (身高)、两个字符串类型变量“xm” (姓名)、 “xb” (性别),和一个方法“rwjj” (人物简介)用来输出个人信息。
源代码如下:
package ch07;
class People{//定义People类 double sg;
String xm,xb;//定义成员变量
People(){//定义不带参数的构造方法 }
void rwjj(){//定义输出个人信息的成员方法
System.out.println(xm+\身高\。\
16
工学院计算机系 Java程序设计 实验指导
} }
2.定义一个主类PeopleDemo,并在主类中调用缺省构造方法定义一个People类的对象xPeople,要求调用rwjj方法输出以下语句“刘阳,男,身高170.0cm。” 源代码如下:
public class PeopleDemo {//定义PeopleDemo类 public static void main(String args[]) {
People xPeople=new People();//定义People类的对象xPeople //给xPeople对象的各个成员变量赋值
xPeople.sg=170;
xPeople.xm=\刘阳\ xPeople.xb=\男\
//调用rwjj()方法输出xPeople的个人信息 xPeople.rwjj(); } }
五、使用构造方法的实验。
1.在People类中增加一个带参数的构造方法和,要求能够接收xm、xb和sg信息。 源代码如下:
People(double sg1,String xm1,String xb1){ sg=sg1; xm=xm1; xb=xb1; }
2.在主类PeopleDemo中调用该构造方法定义对象yPeople,输出信息如下:“李莉,女,身高165cm。” 源代码如下:
People yPeople=new People(165,\李莉\女\yPeople.rwjj();
六、思考练习
6、 比较一下使用带参数的构造方法和使用缺省的不带参数的构造方法的区别。 7、 先定义一个计算计算圆的面积的类Area,该类中有getarea方法可以根据输入的
半径用来计算圆的面积。然后在主类AreaDemo中将Area类实例化输出圆的面积。
17
工学院计算机系 Java程序设计 实验指导
实验八 类的封装性的运用
一、实验目的
通过本次实验,掌握私有变量的getter和setter方法的正确使用。 二、实验内容
1.程序改错,掌握通过定义getter方法正确返回私有变量的值。 算法分析:
1)定义一个Employee类,在该类中定义了三个私有成员变量name、salary和id分别用来记录员工的姓名、薪水和员工编号信息,还定义了一个带参数的构造方法用来初始化员工的姓名、薪水和员工编号信息。
2)定义主类TestPrivateDemo,在主类中调用带参数的构造方法生成一个对象e,并输出该对象的姓名、员工编号和薪水信息。输出信息如下:“员工编号:1,姓名:张三,年薪: 50000.0”。
2. 自行编程,掌握通过定义setter方法,正确设置私有变量值的方法。 算法分析:
1)在Emplyee类中定义可以设置name、salary和id变量值的setter方法。
2)在主类TestPrivateDemo中,通过调用三个setter方法重新设置三个成员变量的值,并输出下列信息:“员工编号:2,姓名:李四,年薪:25000.0”。
三、实验步骤
1、启动JCreator3.50。
2、新建一个项目,项目名称为ch08,存放在自己建立的文件夹下(文件夹名为学号+姓名的拼音,例如01xuting)。
3、通过选择[文件]菜单中的[新建文件]命令,实现创建Java运行程序。 四、程序改错,掌握通过定义getter方法正确返回私有变量的值。
指出下列程序的所有错误,并改正。
通过选择[文件]菜单中的[新建文件]命令,输入改正以后的源代码。
源程序名:TestPrivateDemo .java,以下操作均在TestPrivateDemo .java中实现! class Employee//定义Employee类,用来记录员工的姓名、薪水和员工编号信息 {
private String name; private double salary; private int id;
public Employee(String n, double s,int id1) {
name = n; salary = s; id = id1; }
18
工学院计算机系 Java程序设计 实验指导
}
public class TestPrivateDemo{//定义主类TestPrivateDemo,输出员工信息 public static void main(String[] args) {
Employee e = new Employee(\张三\
System.out.println(“员工编号:”+e.id+”,姓名:”e.name + \的年薪是 \ } }
提示:要使用私有变量的值必须通过定义getter方法,然后使用getter方法来实现。例如要使用私有变量id的值,可以通过下面的方法实现: 首先,在Employee类中定义下列方法: public int getId() {
return id; }
然后,在主类TestPrivateDemo中,在输出语句中则将e.id改成e.getId()即可。 使用其余私有变量name和salary的值的方法请模仿上面的方法自行完成。 五、自行编程,掌握通过定义setter方法,正确设置私有变量值的方法。
以下操作均在TestPrivateDemo .java中实现!
1.在Emplyee类中定义可以设置name、salary和id变量值的setter方法。 设置私有变量id的值的源代码如下: public void setId(int id1) {
id=id1; }
设置其余私有变量name和salary的值的方法请模仿上面的方法自行完成。
2.在主类TestPrivateDemo中,通过调用三个setter方法重新设置三个成员变量的值,并输出下列信息:“员工编号:2,姓名:李四的年薪是 6000.0”。此部分请自行完成。 六、思考练习
模仿上述程序,编写一个可以设置并输出学生学号、姓名、班级和总成绩的程序,其中学号、姓名、班级、总成绩请定义为私有成员变量。
19
工学院计算机系 Java程序设计 实验指导
实验九 类的继承的运用
一、实验目的
通过本次实验,掌握类的继承实现方法,能根据实际需要适当的运用类的继承性。 二、实验内容
1. 完成〔例9.1〕的程序。
2. 在实验八 类的封装性的运用中,完成了一个可以设置和输出员工信息的程序,现在要在此基础上进行改进,要求增加能设置和输出公司经理信息的程序,具体要求如下:
1)公司经理的薪水是基本工资与奖金之和。 2)增加一个可以设置和输出职务信息的功能。 3)其余信息项与普通员工一致。 算法分析:
1)定义父类Employee,Employee中中定义可以设置和获取name、salary和id变量值的setter方法和getter方法。
2)定义子类Manager,Manager中覆盖父类的getSalary()方法,使得最后的工资是基本工资和奖金之和。
3)在子类Manager中再定义一个可以设置职务信息的setter方法,同时定义一个可以获取职务信息的getter方法。
4)在主类TestInheritanceDemo中,先创建父类Employee的一个对象,并通过通过调用三个setter方法重新设置三个成员变量的值,并输出下列信息:“员工编号:1,姓名:王笑,年薪:20000.0”。然后创建子类Manager的一个对象,并通过调用四个setter和getter方法,输出下列信息:“员工编号:2,姓名:李东,职务:经理,年薪:50000.0”
三、实验步骤
1、启动JCreator。
2、新建一个项目,项目名称为ch09,存放在自己建立的文件夹下(文件夹名为学号+姓名的拼音,例如01xuting)。
3、通过选择[文件]菜单中的[新建文件]命令,实现创建Java 运行程序。完成〔例9.1〕的程序。
4、通过选择[文件]菜单中的[新建文件]命令,实现创建Java Application程序。源程序名:TestInheritanceDemo .java,以下操作均在TestInheritanceDemo .java中实现! 1)定义父类Employee,Employee中中定义可以设置和获取name、salary和id变量值的setter方法和getter方法。
源代码如下:
class Employee//定义Employee类,用来记录员工的姓名、薪水和员工编号信息 {
private String name; private double salary;
20