西工大JavaUML实验报告一Word文件下载.docx
《西工大JavaUML实验报告一Word文件下载.docx》由会员分享,可在线阅读,更多相关《西工大JavaUML实验报告一Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
实验二面向对象的编程技术
实验时间
指导老师评议
成绩评定:
(满分为2分)
指导教师评语:
指导教师签名:
实验内容(要求、算法、步骤和方法)
请参见实验说明书
实
验
结
果
具体代码请参见附件中电子版的java源程序。
源程序的简要说明如下:
------------------------------------------------------------
Java实验:
实验五包、接口、类库
TestPackage.java——
说明:
包的创建和引用。
结果如图:
TestInterface.java
创建接口Speakable和Runner,然后创建两个类Dog和Person实现该接口。
运行上面的程序,思考如下的问题:
(1)该程序编译后生成几个字节码文件?
(2)创建一个类Bird(鸟),给出其声音特征,并在主类中创建一个Bird类的实例,输出其特征。
(3)如何编写抽象类代替程序中的接口,实现程序同样的功能。
试比较它们的不同。
答:
(1)生成五个字节码文件
(2)程序结果如图:
(3)程序结果如图:
接口没有执行方法,没有执行函数,但是类有。
InterfaceDemo.java
创建一个名称为Vehicle的接口,在接口中添加两个带有一个参数的方法start()和stop()。
在两个名称分别为Bike和Bus的类中实现Vehicle接口。
创建一个名称为interfaceDemo的类,在interfaceDemo的main()方法中创建Bike和Bus对象,并访问start()和stopt()方法。
结果如图:
DemoPackage.java
创建一个名称为MainPackage的包,使它包含ParentClass和SubClass。
ParentClass包含变量声明,其值从构造函数中输出。
SubClass类从父类派生而来,完成对父类变量的赋值。
创建一个名称为DemoPackage的主类,使它不在MainPackage包中,在该类中创建一个SubClass类的对象。
实验六异常处理
CatchDemo.java
编写一个程序,同时捕获数组越界和被0除的异常,说明异常处理语句try-catch-finally的处理机制。
(3)结果如图:
(5)结果如图:
(6)结果如图:
TextException.java
创建用户自定义异常,用于描述数据取值范围的错误信息。
(1)throw语句用在方法体内,表示抛出异常,由方法体内的语句处理;
是具体向外抛异常的动作,所以它是抛出一个异常实例。
throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。
(2)用户自定义UserException语句,来自定义异常。
(3)利用程序中的try、catch等语句来处理程序中用户的自定义异常。
(4)结果如图:
ChangeToNumber.java
编写一个程序,将字符串转换成数字。
请使用try-catch-finally语句处理转换过程中可能出现的异常。
UML实验:
实验一UML建模基础
first.mdl----
1)练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。
2)认识各种UML关系及可见性符号,并用工具表示出来。
实验二UML类图
(1)简述类的定义,以及类的三要素
(2)类的属性和方法的可见性有哪些?
UML中如何表示?
(3)已知三个类A.B和C.其中类A由类B的一个实类和类C的1个或多个实类构成.请画出能够正确表示类A,B和C之间关系的UML类图.
(4)根据以下描述画出类图,并注明多重性关系:
一个学生可以选
修多门课程,也可能没有任何课程;
一门课程可以被多个学生选修;
一个老师可以教多门课程或者不教课;
每门课程至少有一个老师,也可以有多个老师任教;
每门课程可以有0或1本教材,每本教材只能用于一门课程。
(5)现有一系统需要对商品进行管理,包括添加,删除商品,修改商品信息三项功能,画出系统类图。
(商品信息包括商品编号,商品名称,价格,生产厂商等)
(6)如果现在系统需求发生变化,需要能够对损坏商品进行打折,以及可以按照商品的颜色和外形进行查询,则系统类图应该如何修改?
(7)根据下面的代码画出Invoice类的类图,要求标明各属性的类型和可见性以及类方法。
publicclassInvoice
{
publicdoubleamount;
publicDatedate=newDate();
publicstringcustomer;
publicstringspecification;
publicstringadministrator=“unspecified”;
staticprivateintnumber_of_invoices()=0;
publicinvoice();
{
number_of_invoices++;
}
publicvoidprint()
System.out.println("
Thenumberofinvoicesis”+intnumber_of_invoices);
(8)下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。
请指出模型中的错误,说明原因并改正类图。
(1)类是对一组具有相同属性、操作、关系和语义事物的描述。
类的三要素是:
类的名称、属性、操作。
(2)类的属性和方法的可见性有protect(符号“#”),private(符号“-”),public(符号“+”)
(5)(6)
(7)结果如图:
(8)结果如图:
实验心得体会
1.实验中遇到的问题以及解决方法
1)在第二次实验时,由于对JAVA的包和接口以及异常处理还很陌生,所以在实验过程中不知如何下手,经过请教同学,询问助教,终于明白了各种操作的意义。
2)之后的几次实验中要用到一些包,但是自己并不明白各个包内的函数实现的功能,通过查找资料和询问同学,终于基本学会使用了。
3)学习有时会遇到不明白的地方,通过网上查询获得了更清晰详细的解释,更加深了自己对知识的理解。
2.实验体会
在这一系列的实验中,我基本掌握了Java的编程规则、知识要点和一些小技巧,特别是对而向对象的编程思想和风格有了进一步的认识和体会。
在UML建模的过程中,同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。
在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。