關於加減法的五種開發方式
阿新 • • 發佈:2022-05-30
目標:理解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); } }