《面向对象程序设计》实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《面向对象程序设计》实验指导书郭玉柱广东商学院信息学院二0一0年十二月目录实验一Java基础实验实验二Java面向对象特性试验--Java中的类、对象和方法实验三类的继承、多态、接口、访问控制符与修饰符实验四Java资源及其利用实验五Java语言的异常处理实验六输入输出流实验七图形用户界面设计实验八JavaApplet及多线程试验附录1实验报告格式实验一Java基础实验一、实验目的与要求1.学习编写简单的Java程序。2.学习掌握Java基本数据类型及其基本运算。3.学习掌握Java的基本流程控制语句。二、相关知识1.了解JDK的工作环境,以及如何使用JDK进行编程。2.熟悉集成软件eclipse3.7及其使用。二、实验内容1.编写Hello.java程序并运行。2.用Java语言编写一个应用程序在屏幕上输出1000之内的素数。3.一个数如果恰好等于它的因子之和,这个数就称为“完数”,比如28=1+2+4+7+14。编写一个应用程序在屏幕上输出1000之内的完数。4.求满足1!+2!+3!+…+n!≤9999的最大整数n。5.一个三位的整数如果它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比如333173371,编写一个应用程序在屏幕上输出所有水仙花数。6.下面程序的输出结果是什么?实验二Java面向对象特性试验-Java中的类、对象和方法一、实验目的与要求1.掌握类的定义和使用,定义一些简单类并使用之。2.掌握对象的声明、创建和使用。3.掌握构造方法的定义和使用。4.掌握类方法(静态方法)和非类方法(非静态方法)的区别和使用。5.掌握成员变量和局部变量的区别和使用。二、实验内容1.编写一个Java程序,定义一个表示学生的类,类名Student,其成员变量有:学号、班级、姓名、性别、年龄;成员方法:(1)获得班号(2)获得姓名(3)获得年龄(4)修改年龄;在测试类中创建一个Student的对象,修改该对象的年龄,并输出该对象的年龄。2.类StudentB拥有上题中的所有属性和方法,并且有构造方法,用于初始化所有成员变量,在Student中增加一个方法publictoString(),它的返回值是String,其功能是把类StudentB的对象的成员变量信息组合成一个字符串并输出。比如输出信息学号:123,班号:1班,姓名:李莉,性别:女,年龄:19。在测试类中创建一个StudentB的对象,输出该对象的信息。3.简述构造函数的作用和特点。下面是某同学为Student类编写的一个构造函数,请指出那些地方有错误:voidStudent(intsno,Stringsname){studentNo=sno;studentName=sname;returnsno;}其中studentNo、studentName是类Student中定义的变量。4.编写一个日期类MyDate,要求:(1)日期类MyDate的成员变量有:year、month、day都是int型。(2)日期类的方法有:构造方法MyDate(),日期的默认值为2008年1月1日;构造方法MyDate(inty,intm,intd),形参y、m、d分别为某个日期的年月日的初始值;成员方法intgetYear():获取日期的年数作为方法的返回值;成员方法intgetMonth():获取日期的月份作为方法的返回值;成员方法intgetYear():获取日期的日作为方法的返回值;成员方法voidshowDate():按“yyyy年mm月dd日”格式显示一个日期。在测试类中创建一个MyDate类的对象,显示该对象的年月日。5.设计名为Rectangle的类表示矩形,成员变量:width和height表示矩形的宽和高,其数据类型为double,默认值是1.0;成员变量:color表示矩形的颜色,其数据类型为String,默认颜色为白色;构造方法:无参数的构造方法Rectangle(),其功能是创建默认的矩形;构造方法:带三个参数的构造方法Rectangle(doublewidth,doubleheight,Stringcolor),其功能是创建指定大小和颜色的矩形成员方法:getWidth()、getHeight()、getColour()功能是获取矩形的相应信息;成员方法:setWidth()、setHeight()、setColour()功能是修改矩形相应的信息成员方法:getArea()计算矩形的面积并返回其值;成员方法:getPerimeter()计算矩形的周长并返回其值;编写一个测试程序,创建两个Rectangle对象,设置第一个对象的宽为4,高为40,颜色为黄色,第二个对象的宽为3.5,高为35.9,颜色为红色。显示两个对象的属性并将它们的面积和周长输出。6.设计名为MyInteger的类表示整数,它包括:成员变量:value其数据类型为int(用于存储整数的值);构造方法:MyInteger(intx),其作用是创建指定int值的MyInteger对象;成员方法:getInt(),其功能是返回MyInteger对象的值;成员方法:isEven()、isOdd()和isPrime()方法,如果value的值分别为偶、奇或素数,则相应方法的返回值是true,否则为false;成员方法:equals(intx),如果对象的值与指定的值相等返回true,否则返回false;成员方法:parseInt(Stringx)将数字字符串x转变成int值。编写程序测试该类中的所有方法。7.设计名为MyPoint的类表示一个平面坐标点--具有x坐标和y坐标的点,该类包括,成员变量:x、y;double型;无参数的构造方法:MyPoint(),创建坐标点0,0);带参数的构造方法:MyPoint(doublex,doubley)创建一个坐标点(x,y);成员方法:getX()、getY(),返回坐标点相应的值;成员方法:distance(),返回MyPoint类型的两个点之间的距离;编写测试程序创建两个点(2,3)和(10,30.5),并显示它们之间的距离。8.设计名为Course的类,它包括:3个成员变量:课程编号(cNnumber)、课程名(Cname)、学分数(Cuit)1个构造方法,用于初始化课程编号、课程名和学分1个方法:printCourseInfo(),用于输出课程相关的信息编写课程类的测试程序,输出对象课程的相关信息。*9.设计一个名为Account的类模拟账户,它包括:·int型数据域id表示账号(默认值为0);·double型数据域balance表示账户余额(默认值为0);·double型数据域annualInterestRate存储当前年利率(默认值为0);·String型数据域dateCreated存储账户开户的日期;·无参构造方法创建一个默认的账户;·id,balance和annualInterstRate的访问器和修改器;·dateCreated的访问器;·getMonthlyInterestRate()方法返回月利率;·withDraw方法从账户提取特定数额的款;·deposit方法向账户存特定数额的款;编写一个测试程序,创建一个账号为1122、余额为20000、年利率为4.5%的Account对象。使用withDraw方法提款2500元,使用deposit方法存款3000元,并打印余额和月利率,以及该账户的开户日期。10.描述this的作用,下列代码有什么错误?publicclassC{intp;publicvoidsetP(intp){p=p;}}11.下面四个程序分别有什么错误?(1)(2)(3)12.下列代码有什么错误?(4)publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors(5);}}publicclassShowErrors{publicstaticvoidmain(Stringarg[]){ShowErrorst=newShowErrors();t.x();}}publicclassShowErrors{publicvoidmethod1(){Circlec;System.out.println(“Whatisradius”+c.getRadius());c=newCircle;}}publicclassShowErrors{publicstaticvoidmain(Stringarg[]){Cc=newC(5.0);system.out.println(c.value);}}classC{intvalue=2;}13.下列程序的输出是什么?14.假设类Foo如下图(1)中定义,f是类Foo的一个对象。图(2)中的哪些语句是正确的?14.如果合适的话,在“?”处加入static关键字。15.是否能在静态方法中调用成员方法或引用成员变量?是否能在成员方法中调用静态方法或引用静态变量?下面代码的错误是什么?publicclassFoo{inti;staticStrings;voidimethod(){}staticvoidsmethod(){}}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();(1)(2)publicclassFoo{privatebooleanx;publicstaticvoidmain(Stringargs[]){Foofoo=newFoo();System.out.println(foo.x);}}16.描述传递基本类型参数和传递引用类型参数的区别。写出下面程序的输出:17.写出下列程序的输出:18.写出下列四个程序各自的输出:19.下列程序的输出是什么?20.请写出下列程序的输出结果//程序名TestAB.java21.请写出下列程序的输出结果///程序名TestAB2.java23.下面程序定义了一个Student类及其测试程序,请给出程序运行的结果//TestStudent.java24*.编写程序,输入年份,打印出该年的年历(12个月的),如下图所示。提示:使用Calendar类得到一个Calendar类对象,先求出输入年份的1月1日是星期几,然后通过循环打印出每个月的日历,注意大小月和闰月问题。实验三类的继承、多态、接口、访问控制符与修饰符一、实验目的与要求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.下列程序在编译时会出现什么问题?4.下列说法对还是错?(1)子类是父类的一个子集。(2)当从子类调用构造方法时,它的父类的无参数构造方法也常常被调用。(3)可以在子类覆盖定义在父类中额私有方法。(4)

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功