1. 程式人生 > 其它 >關於加減法的五種開發方式

關於加減法的五種開發方式



目標:理解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);
    }
}