Java二

实验二

在运行这个代码时,Cat类和Dog类因为有重复定义而无法运行Animal的类文件。多次尝试后失败。求指导。

第三类实验

SOLID原则

  • SRP(Single      Responsibility Principle,单一职责原则)
  • OCP(Open-Closed      Principle,开放-封闭原则)
  • LSP(Liskov      Substitusion Principle,Liskov替换原则)
  • ISP(Interface      Segregation Principle,接口分离原则)
  • DIP(Dependency      Inversion Principle,依赖倒置原则)

Rule of three (三次原则):第一次用到某个功能时,你写一个特定的解决方法;第二次又用到的时候,你拷贝上一次的代码(违反了DRY);第三次出现的时候,你才着手"抽象化",写出通用的解决方法。

 第四类练习

 

 最后一个的Complex类是在我自己电脑里的eclipse实现的。Complex class 和test class都是按照实验一中的TDD设计方法建立的,建立了test文件及juint,但是在运行test文件时,run as中只有常规的运行console 窗口,运行成功,并未出现Junit选项。在多次更改ecilpse设置后,始终无法出现run as 中要使用动态条的选项。后来自己加上了@Test,就出现了Juint run 。运行之后ComplexTest文件中有两个错。一个是主函数不应该有参数,因此改为空参数类型的主函数;另一个是主函数不应定义为静态,因此将static删去。再次运行,成功!出现绿色条。

步骤耗时百分比
需求分析2h 33.3% 
设计 2h 33.%
代码实现 1h 15.6%
测试1h 15.6% 
分析总结

伪代码

建立一个复数类函数,建立成员对象。判断参数是否合法,将参数传值到函数中。建立一个复数加法函数。再建立一个复数减法函数。

 

public class ComplexTest{

 public static void main (String[] args){   Complex c =new Complex();   Complex c1 = new Complex (2,7);   Complex c2 = new Complex (5,2);   c1.Print();   c2.Print();   System.out.println("两复数之和为:");   System.out.println((c.Jia(c1, c2).rePart+"+"+c.Jia(c1, c2).imPart+"i").toString());   System.out.println("两复数之差为:");   System.out.println((c.Jian(c1, c2).rePart+"+"+c.Jian(c1, c2).imPart+"i").toString());  } }

 }

产品代码

public class Complex { double rePart,imPart; Complex() {  this.rePart=0;  this.imPart=0; } Complex(double rePart) {  this.rePart=rePart;  this.imPart=0; } Complex(double rePart,double imPart){  this.rePart=rePart;  this.imPart=imPart; } Complex Jia(Complex p1,Complex p2){  Complex p =new Complex(p1.rePart+p2.rePart,p1.imPart+p2.imPart);  return p; } Complex Jian(Complex p1,Complex p2){  Complex p =new Complex(p1.rePart-p2.rePart,p1.imPart-p2.imPart);  return p; }

void Print() {  System.out.println("复数的值为:");  if(this.imPart!=0)   System.out.println(this.rePart+"+"+this.imPart+"i");  else   System.out.println(this.rePart); }

测试代码

public class ComplexTest{

 public static void main (String[] args){   Complex c =new Complex();   Complex c1 = new Complex (2,7);   Complex c2 = new Complex (5,2);   c1.Print();   c2.Print();   System.out.println("两复数之和为:");   System.out.println((c.Jia(c1, c2).rePart+"+"+c.Jia(c1, c2).imPart+"i").toString());   System.out.println("两复数之差为:");   System.out.println((c.Jian(c1, c2).rePart+"+"+c.Jian(c1, c2).imPart+"i").toString());  } }

}

总结单元测试代码:

有了单元测试代码,我们在程序纠错中方便了许多。在运行中可能会一下子出错,无法一一纠正出来。有了单元测试,就知道运行的错误在哪,测试可以知道自己的产品代码是否符合要求,就只带运行出错在哪个环节。

 

转载于:https://www.cnblogs.com/bushifudongjing/p/4485996.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值