
《面向对象程序设计》实验指导书.docx
27页《面向对象程序设计》实验指导书 《面对对象程序设计》试验指导书 郭玉柱 广东商学院信息学院 二0一0 年 十二 月 1 目 录 试验一 Java根底试验试验二 Java试验三 试验四 Java试验五 Java 试验六 试验七 试验八 Java Applet 附录1 面对对象特性试验--Java中的类、对象和方法类的继承、多态、接口、访问限制符与修饰符 资源及其利用 语言的异样处理 输入输出流 图形用户界面设计 及多线程试验试验报告格式 2 试验一 Java根底试验一、试验目的与要求1. 学习编写简洁的Java程序2. 学习驾驭Java根本数据类型及其根本运算 3. 学习驾驭Java 的根本流程限制语句二、相关学问1. 了解JDK的工作环境,以及如何运用JDK进展编程 2. 熟识集成软件 eclipse3.5及其运用二、试验内容1. 编写Hello.java程序并运行2. 用Java语言编写一个应用程序在屏幕上输出1010之内的素数 3. 一个数假如恰好等于它的因子之和,这个数就称为“完数”,比方28=1+2+4+7+14。
编写一个应用程序在屏幕上输出1010之内的完数 4. 求满意1!+2!+3!+ …+n!≤101101的最大整数n 5. 一个三位的整数假如它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比方 371?3?7?1,编写一个应用程序在屏幕上输出全部水仙花数 6. 下面程序的输出结果是什么?333 3 试验二 Java面对对象特性试验-Java中的类、对象和方法 一、试验目的与要求1. 驾驭类的定义和运用2. 驾驭对象的声明、创立和运用 3. 驾驭构造方法的定义和运用4. 驾驭类方法〔静态方法〕和非类方法〔非静态方法〕的区分和运用 5. 驾驭成员变量和局部变量的区分和运用二、试验内容1. 编写一个Java程序,定义一个表示学生的类,类名Student, 其成员变量有:学号、班级姓名、性别、年龄; 成员方法:〔1〕获得班号〔2〕获得姓名〔3〕获得年龄〔4〕修改年龄; 创立一个Student的对象,修改该对象的年龄,并输出该对象的年龄2.为Student类定义构造方法,用于初始化全部成员变量,增加一个方法toString〔〕,它的返回值是String,其功能是把一个Student类的对象的成员变量信息组合成一个字符串 并输出。
3. 简述构造函数的作用和特点下面是某同学为Student类编写的一个构造函数,请指出那些地方有错误: void Student(int sno, String sname){ studentNo=sno; studentName=sname; return sno; }4. 编写一个日期类Date,要求: (1) 日期类 Date的成员变量有:year, month,day 都是int 型 〔2〕日期类的方法有: 构造方法 Date(),日期的默认值为2022年1月1日; 构造方法 Date(int y,int m,int d),形参y,m,d分别为某个日期的年月日的初始值; 成员方法 int getYear():获得日期的年数作为方法的返回值; 成员方法 int getMonth():获得日期的月份作为方法的返回值; 成员方法 int getYear():获得日期的日作为方法的返回值; 成员方法 void showDate():已“****年**月**日”的形式显示一个日期 5.下面四个程序分别有什么错误? public class ShowErrors{ public class ShowErrors{ public static void main(String arg[ ]){ public static void main(String arg[ ]){ ShowErrors t=new ShowErrors(5); ShowErrors t=new ShowErrors(); } t.x(); } } } 〔1〕 〔2〕 4 public class ShowErrors{ public class ShowErrors{ public void method1(){ public static void main(String arg[ ]){ Circle c; C c=new C(5.0); System.out.println(“What is radius”+c.getRadius()); system.out.println(c.value); c=new Circle; } } } } class C{ int value=2; 〔3〕 } 〔4〕 6. 以下代码有什么错误? 7. 以下程序的输出是什么? 8. 假设Foo类如下列图〔1〕中定义,f是Foo的一个对象。
图(2) 中的哪些语句是正确的? System.out.println〔f.i〕; public class Foo{ System.out.println〔f.s〕; int i; f.imethod(); static String s; f.smethod(); void imethod(){ System.out.println(Foo.i); } System.out.println(Foo.s); static void smethod(){ } Foo.imethod(); } Foo.smethod(); 〔1〕 〔2〕 5 21. 设计名为Time的类该类包含:·数据域hour、minute和second表示时间; ·无参构造方法为当前时间创立Time对象; (数据域的值表示当前的时间) ·一个构造方法在指定以毫秒表示的、从1970年1月1日午夜起先已逝去的时间时, 创立一个Time对象;(数据域的值表示该时间) ·三个 get方法分别获得数据域hou r,minute和second; 编写测试程序创立两个Time对象(运用new Time()和newTime(555550000)),并显示它们的小时、分钟和秒。
提示:无参构造方法可以运用当前时间,当前时间可以通过System. currentTimeMillis()获得另外一个构造方法为指定逝去的时间设置小时、分钟和秒的值例如,假如逝去的时间555550000毫秒,那么小时为10,分钟为19,秒为10 22. 设计名为MyInteger的类,它包括: ·int型数据域value存储该对象表示的int值; ·一个构造方法,当指定int值时,创立MyInteger对象; ·一个get方法返回int的值; ·isEven(),isOdd()和isPrime()方法,假如这个值分别为偶、奇或素数,返回true; ·静态方法isEven(int),isOdd(int)和isPrime(int),假如指定的值分别为偶、奇或素数, 返回true; ·静态方法 isEven(MyInteger),isOdd(MyInteger)和isPrime(MyInteger),假如指定的值 分别为偶、奇或素数,返回true ·equals(int)和equals(MyInteger)方法,假如该对象的值与指定的值相等,返回true; ·静态方法parseInt(int)将字符串转变成int值。
编写用户程序测试该类中的全部方法23. 设计名为MyPoint的类表示一个具有x坐标和y坐标的点,该类包括: ·两个数据域x和y表示坐标; ·无参构造方法创立点〔0,0〕; 11 ·一个构造方法依据指定坐标创立一个点; ·两个get方法分别得到数据域x和y; ·distance方法返回MyPoint类型的两个点之间的距离; ·distance方法返回从这一点到另一个指定x和y坐标的点之间的距离; 编写测试程序创立两个点(0,0)和(10,30.5),并显示它们之间的距离 24. 请写出以下程序的输出结果 //程序名TestAB.java 25. 请写出以下程序的输出结果 ///程序名TestAB2.java 12 26. 设计名为Course的类,它包括:·3个成员变量:课程编号(cNnumber)、课程名(Cname)、学分数(Cuit) ·1个构造方法,用于初始化课程编号、课程名和学分 ·1个方法:printCourseInfo〔〕,用于输出课程相关的信息 编写课程类的测试程序27.下面程序定义了一个Student类及其测试程序,请给出程序运行的结果//TestStudent.java 13 作业:1,2,16,17,18,19,21,23 14 试验三 类的继承、多态、接口、访问限制符与修饰符 一、试验目的与要求1. 驾驭继承和多态这两个面对对象程序的根本原那么。
2. 理解interface关键字和接口的根本概念3. 理解abstract关键字,驾驭抽象类和程序方法的设计技巧 4. 理解 final关键字,驾驭最终类和抽象类的区分和运用5. 理解static关键字,理解类的层次和对象层次的区分,驾驭类变量和类方法的运用6. 理解包的概念和运用创立一个名为charpter3_2的包,将本试验的程序放入该包中二、试验内容1. 设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成果(score),类Student中要有一个方法 display(),用来显示一个学生的信息编写一个测试程序,创立一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的根本信息在类Student的带参数的构造方法中设定 2. 写出以下程序运行结果 3.以下程序在编译时会出现什么问题? 15 4. 以下说法对还是错? 〔1〕子类是父类的一个子集 〔2〕当从子类调用构造方法时,它的父类的无参数构造方法也时时被调用。
〔3〕可以在子类覆盖定义在父类中额私有方法 〔4〕可以在子类覆盖定义在父类中的静态方法 5. 指出以下类中的问题〔提示,至。












