资源描述:
《实验7_成员访问控制与异常》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、山西大学大学计算机与信息技术学院实验报告姓名学号专业班级计算机科学与技术课程名称Java实验实验日期2014/5/29成绩指导教师陈千批改日期实验名称实验7成员访问控制与异常一、实验目的(l)理解Java包的组织结构;(2)学会编写带有包结构的程序;(3)掌握包结构下的成员访问控制。(4)掌握基本异常的处理机制;(5)熟悉try语句与catch语句的搭配使用;(6)了解有异常处理与没有异常处理的差别;(7)多重catch语句的使用;(8)使用Throws声明异常和Throw抛出异常。二、实验要求编写3个类,
2、类名分别为Clock、A、B,其中类Clock和类A放在同一个包packone中,而类B则放在另一个包packtwo中,包packone和包packtwo放在同一个目录下。类Clock中有3个整型数据hour、minute、second,它们分别是public、private、protected,类Clock还包含一些方法使用这些数据。类A和类B的功能相似,都是使用类Clock并调用类C1ock中的方法。请按照下面的实验步骤,循序渐进的完成实验,并回答后面的问题。三、包的使用以及访问控制(1)首先在c:p
3、rogramming目录下创建一个文件夹,命名为packone,然后在该文件夹下创建一个名叫Clock.java的程序,打开文本编辑器按程序清单输入该程序。程序清单Clock.javapackagepackone;publicclassClock{publicinthour;privateintminute;protectedintsecond;publicClock(inti,intj,intk){setAll(i,j,k);}voidsetAll(inti,intj,intk){hour=i;minut
4、e=j;second=k;}publicintgetHour(){returnhour;}publicintgetMinute(){returnminute;}publicintgetSecond(){returnsecond;}}(2)接着在packone文件夹下创建第二个程序命名为A.java,打开文本编辑器按程序清单输入该程序。程序清单A.javapackagepackone;classA{publicstaticvoidmain(String[]args){Clockc=newClock(5,20,
5、10);System.out.println("从类A中访问Clockhour="+c.hour);System.out.println("从类A中访问Clockminute="+c.minute);System.out.println("从类A中访问Clocksecond="+c.second);}}(3)现在在c:programming目录下创建第二个文件夹,命名为packtwo,然后在该文件夹下创建一个名为B.java的程序,打开文本编辑器按如下程序清单输入该程序。程序清单B.javapackage
6、packtwo;importpackone.Clock;classB{publicstaticvoidmain(String[]args){Clockc=newClock(8,30,5);System.out.println("从类B中访问Clockhour="+c.getHour());System.out.println("从类B中访问Clockminute="+c.getMinute());System.out.println("从类B中访问Clocksecond="+c.getSecond());}
7、}至此已经编辑好了3个源程序,然后在Eclipse环境中分别编译运行packone文件夹和packtwo文件夹中的程序,编译的结果将分别在packone文件夹和packtwo文件夹中生成Clock.class,A.class和B.class文件。接着分别运行这两个程序,观察程序输出结果并分析之。运行结果和分析写在下面。答:A中存在一个错误,因为A调用了私有数据minute,而私有数据无法在不同类中读取。B通过get()函数正常读取,Eclipse中结果如下。A的运行截图B的运行截图思考(1)现在请将Cloc
8、k类的构造函数publicClock(inti,intj,intk)改成Clock(inti,intj,intk)然后分别运行A.class和B.class,观察所得结果。答:A,B都无法运行,因为java中默认的前缀为protected,不同包类也无法访问。B运行截图(2)由于在B.Java程序中使用了importpackone.*语句从而导入了packone包中的Clock类,但是importpackone.