您的位置:首页 > 编程语言 > Java开发

实验二Java面向对象程序设计

2015-10-11 21:49 579 查看
一、单元测试

了解三种代码:

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的学习过程一样,进展很慢,脑子里知道这个程序的流程,但却不能很快地用程序语言描述出来,在对象、接口这方面很不熟悉,还要花大力气多编程,争取把每个程序实践一遍
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: