《面向对象程序设计》
实验指导书
郭玉柱
广东商学院信息学院 二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语言编写一个应用程序在屏幕上输出1000之内的素数。 3. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,比如28=1+2+4+7+14。编写一个应用程序在屏幕上输出1000之内的完数。 4. 求满足1!+2!+3!+ …+n!≤9999的最大整数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(),日期的默认值为2008年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