实验二Java面向对象程序设计
2015-10-11 21:49
579 查看
一、单元测试
了解三种代码:
1、伪代码:类似于自然语言说明,描述实现逻辑思维
2、产品代码:程序员编辑的开发代码,要求可修改、可移植
3、测试代码:我理解是相当于开发软件在软件开放之前,程序员找到bug。比如一些边界情况的测试。
二、TDD(测试驱动开发)
1、概念:先列出测试表,编写测试用例,再写开发代码
2、先考虑边界值,能够减少二次开发和调试bug的工作量
三、面向对象三要素
四、练习
1、伪代码:
2、测试代码:
3、目前设计好的程序代码:
public class Complex
{
private final double re; // 实部
private final double im; // 虚部
}
运行结果如下:
总结:感觉还是和C的学习过程一样,进展很慢,脑子里知道这个程序的流程,但却不能很快地用程序语言描述出来,在对象、接口这方面很不熟悉,还要花大力气多编程,争取把每个程序实践一遍
了解三种代码:
1、伪代码:类似于自然语言说明,描述实现逻辑思维
2、产品代码:程序员编辑的开发代码,要求可修改、可移植
3、测试代码:我理解是相当于开发软件在软件开放之前,程序员找到bug。比如一些边界情况的测试。
二、TDD(测试驱动开发)
1、概念:先列出测试表,编写测试用例,再写开发代码
2、先考虑边界值,能够减少二次开发和调试bug的工作量
三、面向对象三要素
1、封装:将对象的一些信息包装起来,控制用户对类的修改,开放接口,用户依旧能访问可以访问的数据,起到信息隐藏的作用 2、继承:一个类基于另外已存在的类实现相关作用,可以减少代码的重复率。 3、多态:在Java中,当我们用父类声明引用,用子类生成对象时,多态就出现了,我的理解多态就是父类子类共同存在,不同的类对象调用同一个成员,但执行代码不同 4、自己在电脑上使用测试的截图:
5、我认为模块化就是把根据伪码,把类对象列出,把相关对象的继承、封装用UML图表示出来,然后直接把UML图转化为Java代码 6、自己在实现的时候,类之间的静态关系没有画出来
7、在安装umbrello的时候,在更新软件包时,直接输入apt -get update不能直接更新,后来在命令前面加上sudo更新后再输入sudo apt -get install umbrello即可
四、练习
1、伪代码:
1)加法:实部加实部,虚部加虚部 2)减法:实部减实部,虚部减虚部 3)乘法:a的实部与虚部分别与b的实部和虚部相乘,a.r*a.r-a.i*b.i+a.i*b.r+a.r*b.i
2、测试代码:
1)虚部和实部输入为0; 2)虚部输入为负数 (还没弄好)
3、目前设计好的程序代码:
public class Complex
{
private final double re; // 实部
private final double im; // 虚部
public Complex(double real, double imag) { re = real; im = imag; } public String toString() { if (im == 0) return re + ""; if (re == 0) return im + "i"; if (im < 0) return re + " - " + (-im) + "i"; return re + " + " + im + "i"; } public Complex plus(Complex b) { Complex a = this; double real = a.re + b.re; double imag = a.im + b.im; return new Complex(real, imag); } public Complex minus(Complex b) { Complex a = this; double real = a.re - b.re; double imag = a.im - b.im; return new Complex(real, imag); } public Complex times(Complex b) { Complex a = this; double real = a.re * b.re - a.im * b.im; double imag = a.re * b.im + a.im * b.re; return new Complex(real, imag); } public Complex times(double alpha) { return new Complex(alpha * re, alpha * im); } public double re() { return re; } public double im() { return im; } public static Complex plus(Complex a, Complex b) { double real = a.re + b.re; double imag = a.im + b.im; Complex sum = new Complex(real, imag); return sum; } public static void main(String[] args) { Complex a = new Complex(5.0, 6.0); Complex b = new Complex(-3.0, 4.0); System.out.println("a = " + a); System.out.println("b = " + b); System.out.print("R(a) = " + a.re()); System.out.println(" I(a) = " + a.im()); System.out.print("R(b) = " + b.re()); System.out.println(" I(b) = " + b.im()); System.out.println("b + a = " + b.plus(a)); System.out.println("a - b = " + a.minus(b)); System.out.println("a * b = " + a.times(b)); System.out.println("b * a = " + b.times(a)); }
}
运行结果如下:
总结:感觉还是和C的学习过程一样,进展很慢,脑子里知道这个程序的流程,但却不能很快地用程序语言描述出来,在对象、接口这方面很不熟悉,还要花大力气多编程,争取把每个程序实践一遍
相关文章推荐
- 避免带有变长参数的方法重载,别让null值和空值威胁到变长方法,覆写变长方法也循规蹈矩
- spring 注解配置bean2
- Java Math的 floor,round和ceil的总结
- JUnit单元测试入门
- Spring in Action 学习笔记三-AOP
- Struts2配置详解_配置Action
- Spring in Action 学习笔记二-DI
- Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例
- JDK中的设计模式
- <学习笔记>关于Hash集合以及Java中的内存泄漏
- Java实现进度条
- Spring in Action 学习笔记一
- Java实现滚动字幕
- Java基础知识强化之IO流笔记47:IO流练习之 随机获取文本文件中的姓名案例
- struts2学生信息管理系统篇章④
- java入门第二天if else
- spring+struts2整合(二)
- Spring官网改版后下载
- 设计模式之桥接模式
- Java基础知识强化之IO流笔记46:IO流练习之 把文本文件中数据存储到集合中的案例