合并的2种方法

来源:互联网 发布:java键盘 上下左右监听 编辑:程序博客网 时间:2024/05/17 22:51
          public class Test {


public static void main(String[] args) {
System.out.println(new Test().superFunction(4, Type.Cheng));
}


public int add(int num) {
int t = 0;
for (int i = 1; i <= num; i++) {
t += i;
}
return t;
}


public int cheng(int num) {
int t = 1;
for (int i = 1; i <= num; i++) {
t *= i;
}
return t;

}                 

       第一种:

        public int superFunction(int num, Type type) {
int t = type.initNum;
for (int i = 1; i <= num; i++) {
switch (type) {
case Add:
t += i;
break;
case Cheng:
t *= i;
break;
}
}
return t;
}


enum Type {
Add(0), Cheng(1);


int initNum;


Type(int initNum) {
this.initNum = initNum;
}


}


}       

     第二种:     

    public int superFunction(int num, Type type) {
int t = type.initNum;
for (int i = 1; i <= num; i++) {
t = type.doAction(t, i);
}
return t;
}


enum Type {
Add(0) {
@Override
public int doAction(int t, int i) {
return t + i;
}
},
Cheng(1) {
@Override
public int doAction(int t, int i) {
return t * i;
}
};


int initNum;


public abstract int doAction(int t, int i);


Type(int initNum) {
this.initNum = initNum;
}


}


}        

























原创粉丝点击