关于加减法的五种开发方式


目标:理解JAVA“基于契约”编程的思想项目:定义一个类,能够完成两个功能:1、加法:1+2+5+72、减法:10-3-2-1-5

版本1、用函数库开发算法 :
操作:
*、定义MyMath1类
*、定义静态加法:int add(int,int...)
*、定义静态减法:int sub(int,int...)
*、main方法中调用。

版本2、用定义类的方法
*、定义MyMath2类
*、定义两个私有成员:int num1,int[]num2。
*、定义非空构造函数对num1和num2赋值。
*、定义方法:int add();int sub()。注意此时方法没有参数。
*、main方法中调用。

版本3、用定义接口的方法
*、定义加法IAdd接口,方法:int add(int,int...)
*、定义减法ISub接口,方法:int sub(int,int...)
*、定义MyMath3类,同时实现加法和减少接口。
*、main方法中调用。

版本4、用定义接口的方法-组合编程1
*、定义加法IAdd接口,方法:int add(int,int...)
*、定义减法ISub接口,方法:int sub(int,int...)
*、定义加法实现类MyAdd,实现加法接口
*、定义减法实现类MySub,实现减法接口
*、定义MyMath4类,定义成员:
                    IAdd addMember;
                    ISub subMember;
*、定构造方法,对两个成员进行赋值。
*、main方法中调用。

版本5、用定义接口的方法-组合编程2
*、定义加法IAdd接口,方法:int add(int,int...)
*、定义减法ISub接口,方法:int sub(int,int...)
*、定义加法实现类MyAdd,实现加法接口
*、定义减法实现类MySub,实现减法接口
*、定义MyMath5类,注意也要实现加法和减法接口。
*、定义成员:
        IAdd addMember;
        ISub subMember;
*、定构造方法,对两个成员进行赋值。
*、实现加法接口:调用addMember完成加法。
*、实现减法接口:调用subMember完成减法。
*、main方法中调用。

要求:
*、反复练习上面几种不同的开发方式。
*、反复思考上面不同的开发方式各种的优缺点。

  


package
day08.number.calculate; interface IAdd{ int add(int a,int b, int...c); } interface ISub{ int sub(int a,int b,int...c); }
package day08.number.calculate;

class MyAdd implements IAdd{


    @Override
    public int add(int a, int b, int... c) {
        int result = a + b;
        for (int i = 0; i < c.length;i++) {
            result+= c[i];

        }
        return result;
    }

}

  

package day08.number.calculate;

class MySub implements ISub {

    @Override
    public int sub(int a, int b, int... c) {
        int result = a - b;
        for (int i = 0; i < c.length; i++) {
            result -= c[i];
        }
        return result;
    }

}

  

package day08.number.calculate;

public  class MyMath1 {
    public static int add(int a,int b,int...c) {
        int result = a + b;
        for (int i = 0; i < c.length;i++) {
            result+= c[i];

        }
        return result;
    }
    public static int sub(int a,int b,int...c){
        int result =a-b;
        for(int i=0;i<c.length;i++){
            result-=c[i];
        }
        return result;
    }
}
package day08.number.calculate;

public class MyMath2 {
    private int num1;
    private int[]num2;

    public int add(){
        int i =0;
        int result = num1 +num2[i];

        for (; i < num2.length-1;i++) {
            result+= num2[i+1];

        }
        return result;
    }
    public int sub() {
        int i = 0;
        int result = num1 - num2[i];

        for (i = 0; i < num2.length-1; i++) {
            result -= num2[i+1];

        }
        return result;
    }
    public MyMath2(int a,int ...b){
//        num1=a;
//        for (int i=0;i<b.length;i++){
//       num2[i]=b[i];
        this.num1=a;
        this.num2=b;
       }

    }
package day08.number.calculate;

public class MyMath3 implements IAdd,ISub{
    @Override
    public int add(int a, int b, int... c) {
        int result = a + b;
        for (int i = 0; i < c.length;i++) {
            result+= c[i];

        }
        return result;

    }
    @Override
    public int sub(int a, int b, int... c) {
        int result =a-b;
        for(int i=0;i<c.length;i++){
            result-=c[i];
        }
        return result;
    }

}

  

package day08.number.calculate;

public class MyMath4  {
    public IAdd addMember;
    public ISub subMember;
    public MyMath4(){}
    public MyMath4(IAdd addMember,ISub subMember){
        this.addMember =addMember;
        this.subMember=subMember;
    }

    public MyMath4(MyAdd add, MySub sub) {
    }

    public int add(int a, int b, int... c) {
        System.out.println("加法");
//        System.out.println("add="+this.addMember.add(1,2,3));
        return this.addMember.add(a,b,c);
    }
    public int sub(int a, int b, int... c) {
        this.subMember.sub(1,2,3);
        System.out.println("减法");
//        System.out.println("add="+this.subMember.sub(1,2,3));

        return this.subMember.sub(a,b,c);

    }


}

  

package day08.number.calculate;

public class MyMath5 {
    private IAdd addMember;
    private ISub subMember;
    public MyMath5(){}
    public MyMath5(IAdd addMember,ISub subMember){
        this.addMember = addMember;
        this.subMember = subMember;
    }
    public int add(int a,int b,int...c){
        return this.addMember.add(a,b,c) ;
    }
    public int sub(int a,int b,int...c){
        return  this.subMember.sub(a,b,c);
    }
}

  

posted @ 2022-05-30 16:56  薇薇酱qwq  阅读(94)  评论(0)    收藏  举报