20145301《Java程序设计》实验二报告:Java面向对象程序设计
2016-04-17 23:51
357 查看
20145301《Java程序设计》实验二报告:Java面向对象程序设计
课程:Java程序设计
实验名称:Java面向对象程序设计
实验目的与要求:
初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态
初步掌握UML建模
熟悉S.O.L.I.D原则
了解设计模式
实验内容:
使用TDD的方式设计关实现复数类Complex程序步骤:
伪代码:百分制转五分制:
如果成绩小于60,转成“不及格”
如果成绩在60与70之间,转成“及格”
如果成绩在70与80之间,转成“中等”
如果成绩在80与90之间,转成“良好”
如果成绩在90与100之间,转成“优秀”
其他,转成“错误”
产品代码:
public class MyUtil{ public static String percentage2fivegrade(int grade){ //如果成绩小于60,转成“不及格” if (grade < 60) return "不及格"; //如果成绩在60与70之间,转成“及格” else if (grade < 70) return "及格"; //如果成绩在70与80之间,转成“中等” else if (grade < 80) return "中等"; //如果成绩在80与90之间,转成“良好” else if (grade < 90) return "良好"; //如果成绩在90与100之间,转成“优秀” else if (grade < 100) return "优秀"; //其他,转成“错误” else return "错误"; } }
测试代码:
public class MyUtilTest { public static void main(String[] args) { //测试边界情况 if(MyUtil.percentage2fivegrade(0) != "不及格") System.out.println("test failed 1!"); else if(MyUtil.percentage2fivegrade(60) != "及格") System.out.println("test failed 2!"); else if(MyUtil.percentage2fivegrade(70) != "中等") System.out.println("test failed 3!"); else if(MyUtil.percentage2fivegrade(80) != "良好") System.out.println("test failed 4!"); else if(MyUtil.percentage2fivegrade(90) != "优秀") System.out.println("test failed 5!"); else if(MyUtil.percentage2fivegrade(100) != "优秀") System.out.println("test failed !"); else System.out.println("test passed!"); } }
TDD(Test Driven Devlopment, 测试驱动开发)
概念:先写测试代码,然后再写产品代码的开发方法。一般步骤如下: 明确当前要完成的功能,记录成一个测试列表; 快速完成编写针对此功能的测试用例; 测试代码编译不通过(没产品代码呢); 编写产品代码; 测试通过
测试结果:
面向对象三要素
抽象 程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。
封装、继承与多态
封装
将数据与相关行为包装在一起以实现信息就隐藏。封装实际上使用方法(method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,从而带来模块化和信息隐藏的好处。
public class Dog { private String color; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String bark(){ return "汪汪"; } public String toString(){ return "The Dog's color is " + this.getColor() +", and it shouts "+ this.bark() + "!"; } }
检测
public class DogTest { public static void main(String[] args) { Dog d = new Dog(); d.setColor("Yellow"); getInfo(d); } public static void getInfo(Dog d) { System.out.println(d.toString()); } }
继承
以封装为基础,一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用。其更为广泛而重要的作用是实现多态。
多态
在Java中,当我们用父类声明引用,用子类生成对象时,多态就出现了。
UML建模如下:
其他
心得体会
此次试验是java的第二次试验,试验最大的收获是学习了Junit单元测试。一个单元测试从整个系统中单独检验产品程序代码的一个单元并检查其得到的结果是否是预期的。。其目的是在整合程序代码到系统的其余部分之前先测试以便找出程序代码中的问题错误bug。单元测试看似加大了我们的工作量和工作时间,但是在合作编写代码的过程中,却极大地提高了我们效率,它可以更好的对我们代码的每一个单元进行测试,从而更快的找到问题所在,为我们今后的进一步学习做了很好的铺垫。PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 15分钟 | 10% |
设计 | 30小时 | 20% |
代码实现 | 45分钟 | 30% |
测试 | 30钟 | 20% |
分析总结 | 30分钟 | 20% |
参考资料
《Java学习笔记》《Java学习笔记》学习指导
实验二 Java面向对象程序设计
相关文章推荐
- 强迫深究Java中的回调
- java之Socket模拟服务器端与客户端
- JAVA错误:The public type *** must be defined in its own file***
- 《Java程序设计》第6周学习总结
- springmvc对静态资源的访问
- 20145211 《Java程序设计》实验报告二:Java面向对象程序设计
- 20145316《Java程序设计》实验二报告
- 20145316《Java程序设计》第七周学习总结
- 20145303 实验二 Java面向对象程序设计
- Could not find action or result
- 《Java程序设计》第7周学习总结
- java设计模式--原始模型模式
- 20145101 《Java程序设计》第7周学习总结
- Java中创建线程的两种方式
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- 20144303 《Java程序设计》第二次实验实验报告
- 《Java程序设计》第7周学习总结
- java基础(4)--Java中ArrayList和LinkedList区别
- java中length,length(),size()区别
- 使用WebMagic爬虫框架及javaEE SSH框架将数据保存到数据库(一)