面向对象程序设计实验指导书.doc
《面向对象程序设计实验指导书.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计实验指导书.doc(42页珍藏版)》请在咨信网上搜索。
1、面向对象程序设计实验指导书郭玉柱广东商学院信息学院二0一0 年 十二 月 目 录实验一 Java基础实验实验二 Java面向对象特性实验-Java中的类、对象和方法实验三 类的继承、多态、接口、访问控制符与修饰符实验四 Java资源及其运用实验五 Java 语言的异常解决实验六 输入输出流实验七 图形用户界面设计实验八 Java Applet及多线程实验附录1 实验报告格式 实验一 Java基础实验一、实验目的与规定1. 学习编写简朴的Java程序。2. 学习掌握Java基本数据类型及其基本运算。3. 学习掌握Java 的基本流程控制语句。二、相关知识1. 了解JDK的工作环境,以及如何使用J
2、DK进行编程。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. 一个三位的整数假如它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比如 ,编写一个应用程序在屏幕上输出所有水仙花数。6. 下面程序的输出结果是什么? 实验二 Java面向对象特性实验-Java中的
3、类、对象和方法一、实验目的与规定1. 掌握类的定义和使用。2. 掌握对象的声明、创建和使用。3. 掌握构造方法的定义和使用。4. 掌握类方法(静态方法)和非类方法(非静态方法)的区别和使用。5. 掌握成员变量和局部变量的区别和使用。二、实验内容1. 编写一个Java程序,定义一个表达学生的类,类名Student,其成员变量有:学号、班级姓名、性别、年龄;成员方法:(1)获得班号(2)获得姓名(3)获得年龄(4)修改年龄; 创建一个Student的对象,修改该对象的年龄,并输出该对象的年龄。2.为Student类定义构造方法,用于初始化所有成员变量,增长一个方法toString(),它的返回值是
4、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(),日期的默认值为2023年1月1日; 构造方法 Date(int y,i
5、nt m,int d),形参y,m,d分别为某个日期的年月日的初始值; 成员方法 int getYear():获取日期的年数作为方法的返回值;成员方法 int getMonth():获取日期的月份作为方法的返回值;成员方法 int getYear():获取日期的日作为方法的返回值; 成员方法 void showDate():已“*年*月*日”的形式显示一个日期。5.下面四个程序分别有什么错误?public class ShowErrorspublic static void main(String arg ) ShowErrors t=new ShowErrors(); t.x();publi
6、c class ShowErrorspublic static void main(String arg ) ShowErrors t=new ShowErrors(5); (1) (2)public class ShowErrorspublic static void main(String arg ) C c=new C(5.0); system.out.println(c.value);class Cint value=2;public class ShowErrorspublic void method1() Circle c; System.out.println(“What is
7、radius”+c.getRadius();c=new Circle; (3) (4)6. 下列代码有什么错误? 7. 下列程序的输出是什么? 8. 假设Foo类如下图(1)中定义,f是Foo的一个对象。图(2) 中的哪些语句是对的的?System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();public class Fooint i;static S
8、tring s;void imethod() static void smethod() (2)(1)9. 假如合适的话,在“?”处加入static关键字。10. 是否能在静态方法中调用成员方法或引用成员变量?是否能在成员方法中调用静态方法或引用静态变量?下面代码的错误是什么? 11. 描述传递基本类型参数和传递引用类型参数的区别。写出下面程序的输出:12. 写出下列程序的输出:13. 写出下列四个程序各自的输出: 14. 下列程序的输出是什么? 15. 描述关键字this的作用,下列代码有什么错误? public class C int p; public void setP(int p)
9、p=p; 16. 编写名为Rectangle的类表达矩形,这个类涉及: 一个double类型的数据域width和height表达矩形的宽和高,它们的默认值都为1; String类型的数据域color表达矩形的颜色,进一步假设所有矩形的颜色都是相同的,默认颜色为白色; 无参构造方法创建默认矩形; 一个构造方法创建指定width和height的矩形; 所有三个数据域的访问器方法和修改器方法; getArea()方法返回该矩形的面积; getPerimeter()方法返回它的周长; 编写一个测试程序,创建两个Rectangle对象,设立第一个对象的宽为4,高为40,第二个对象的宽为35,高为359,
10、所有Rectangle对象的颜色为红色。显示两个对象的属性并求它们的面积和周长。17. 设计一个名为Fan的类模拟风扇。这个类涉及: 三个常量SLOW,MEDIUM好FAST,其值分别为1,2,3,表达风扇的速度; int类型的数据域speed表达风扇的速度(默认值为SLOW); boolean型的数据域on表达风扇是否打开(默认值为false); double型的数据域radlus表达风扇的半径(默认值为5); string型的数据域color表达风扇的颜色(默认值为blue); 无参构造方法创建默认风扇; 所有四个数据域的访问器和修改器; toString()方法返回描述风扇的字符串。假如
11、风扇打开,该方法用一个组合的字符串返回风扇的速度、颜色和半径;否则,用一个组合的字符串和“fan is off”一起返回风扇的颜色和半径。 编写一个测试程序,创建两个Fan对象,将第一个对象设立为最大速度,半径为10,颜色为 yellow,打开状态;第二个对象为中档速度,半径为5,颜色为blue,关闭状态。通过调用toString方法显示该两对象。18. 设计一个名为Account的类模拟账户,它涉及: int型数据域id表达账号(默认值为0); double型数据域balance表达账户余额(默认值为0); double型数据域annualInterestRate存储当前年利率(默认值为0)
12、; Date型数据域dateCreated存储账户开户的日期; 无参构造方法创建一个默认的账户; id,balance和annualInterstRate的访问器和修改器; dateCreated的访问器; getMonthlyInterestRate()方法返回月利率; withDraw方法从账户提取特定数额的款; deposit方法向账户存特定数额的款; 编写一个测试程序,创建一个账号为1122、余额为20 000、年利率为45的Account对象。使用withDraw方法提款2500元,使用deposit方法存款3000元,并打印余额和月利率,以及该账户的开户日期。19. 设计名为Sto
13、ck的类模拟股票,该类涉及: string型数据域symbol表达股票代号; string型数据域name表达股票的名称; double型数据域preViousclosingPrice存储前一天的股票价格; double型数据域currentPrice存储当前时间的股票价格; 一个构造方法根据指定的股票代号和名称创建股票; 所有数据域的访问器方法; previousClosingPrice和currentPrice的修改器方法; changePercent()方法返回从previousClosingPrice变为currentPrice的比例; 编写测试程序创建Stock对象,其股票代号为SU
14、NW、名称为Sun Microsystem Inc、上期收盘价为100。设立新的当前价为90,显示价格变化比例。20. 编写程序,输入年份,打印出该年的年历(12个月的),如下图所示。 提醒:使用Calendar类得到一个Calendar类对象,先求出输入年份的1月1日是星期几,然后通过循环打印出每月的日历,注意大小月和闰月问题。21. 设计名为Time的类。该类包含:数据域hour、minute和second表达时间; 无参构造方法为当前时间创建Time对象; (数据域的值表达当前的时间) 一个构造方法在指定以毫秒表达的、从1970年1月1日半夜开始已逝去的时间时,创建一个Time对象;(数
15、据域的值表达该时间) 三个 get方法分别获得数据域hou r,minute和second; 编写测试程序创建两个Time对象(使用new Time()和newTime(),并显示它们的小时、分钟和秒。 提醒:无参构造方法可以使用当前时间,当前时间可以通过System. currentTimeMillis()获得。此外一个构造方法为指定逝去的时间设立小时、分钟和秒的值。例如,假如逝去的时间毫秒,那么小时为10,分钟为19,秒为10 。22. 设计名为MyInteger的类,它涉及:int型数据域value存储该对象表达的int值; 一个构造方法,当指定int值时,创建MyInteger对象;
16、一个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值。
17、编写用户程序测试该类中的所有方法。23. 设计名为MyPoint的类表达一个具有x坐标和y坐标的点,该类涉及: 两个数据域x和y表达坐标; 无参构造方法创建点(0,0); 一个构造方法根据指定坐标创建一个点; 两个get方法分别得到数据域x和y; distance方法返回MyPoint类型的两个点之间的距离; distance方法返回从这一点到另一个指定x和y坐标的点之间的距离; 编写测试程序创建两个点(0,0)和(10,30.5),并显示它们之间的距离。24. 请写出下列程序的输出结果 /程序名TestAB.java 25. 请写出下列程序的输出结果 /程序名TestAB2.java26.
18、设计名为Course的类,它涉及:3个成员变量:课程编号(cNnumber)、课程名(Cname)、学分数(Cuit)1个构造方法,用于初始化课程编号、课程名和学分1个方法:printCourseInfo(),用于输出课程相关的信息编写课程类的测试程序27.下面程序定义了一个Student类及其测试程序,请给出程序运营的结果/TestStudent.java作业:1,2,16,17,18,19,21,23实验三 类的继承、多态、接口、访问控制符与修饰符一、实验目的与规定1. 掌握继承和多态这两个面向对象程序的基本原则。2. 理解interface关键字和接口的基本概念。3. 理解abstrac
19、t关键字,掌握抽象类和程序方法的设计技巧。4. 理解 final关键字,掌握最终类和抽象类的区别和使用。5. 理解static关键字,理解类的层次和对象层次的区别,掌握类变量和类方法的使用。6. 理解包的概念和使用。创建一个名为charpter3_2的包,将本实验的程序放入该包中。二、实验内容1. 设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。编写一
20、个测试程序,创建一个Student类的对象,规定name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。2. 写出下列程序运营结果 3.下列程序在编译时会出现什么问题?4. 下列说法对还是错? (1)子类是父类的一个子集。 (2)当从子类调用构造方法时,它的父类的无参数构造方法也经常被调用。 (3)可以在子类覆盖定义在父类中额私有方法。 (4)可以在子类覆盖定义在父类中的静态方法。5. 指出下列类中的问题。(提醒,至少有两个问题) 6. 写出下列程序运营的结果: 7. 在下列代码中,类A和类B在不同的包中。假如问号的位置用空白代替,类B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 实验 指导书
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。