你的意思是调用函数时有的参数不给值就用默认值,是吗?
Java里好像没有提供这种功能,可是用以下的方法可以解决(比C++的麻烦).
假设你的函数有三个参数a,b,c时,解决方法如下(用Java实现):
public class Jin{
private int a = 10; //把参数设成私有类变量,并设初值
private int b = 20;
private int c = 30; public C() {} public void setA(int a){
this.a = a;
} //给每个类变量提供赋值的方法
public void setB(int b){
this.b = b;
} public void setC(int c){
this.c = c;
} //用到私有变量的方法,在C++里这个方法就是带三个参数a,b,c
public int getSum(){
return a + b + c;
}
}详细使用方法如下:
Jin j = new Jin();
1.三个参数都需要重新赋值时:
j.setA(12);
j.setB(12);
j.setC(12);
j.getSum();
等价于C++的:getSum(12,12,12)2.只有部分参数赋值时:
j.setB(21);
j.setC(21);
j.getSum();
等价于C++的:getSum(12,12)以上方法比起C++的方法虽然比较麻烦一点,可是它解决了C++中的
顺序问题.
比如想要重新设置参数a和c的值的话C++里不好实现,可是用以上方法
就可以很容易实现.
j.setA(26);
j.setC(26);
j.getSum();
Java里好像没有提供这种功能,可是用以下的方法可以解决(比C++的麻烦).
假设你的函数有三个参数a,b,c时,解决方法如下(用Java实现):
public class Jin{
private int a = 10; //把参数设成私有类变量,并设初值
private int b = 20;
private int c = 30; public C() {} public void setA(int a){
this.a = a;
} //给每个类变量提供赋值的方法
public void setB(int b){
this.b = b;
} public void setC(int c){
this.c = c;
} //用到私有变量的方法,在C++里这个方法就是带三个参数a,b,c
public int getSum(){
return a + b + c;
}
}详细使用方法如下:
Jin j = new Jin();
1.三个参数都需要重新赋值时:
j.setA(12);
j.setB(12);
j.setC(12);
j.getSum();
等价于C++的:getSum(12,12,12)2.只有部分参数赋值时:
j.setB(21);
j.setC(21);
j.getSum();
等价于C++的:getSum(12,12)以上方法比起C++的方法虽然比较麻烦一点,可是它解决了C++中的
顺序问题.
比如想要重新设置参数a和c的值的话C++里不好实现,可是用以上方法
就可以很容易实现.
j.setA(26);
j.setC(26);
j.getSum();
return a + b + c;
}假如调用此函数时,用这样调用(或不能这样调用)的时候就出现问题:
getSum(21,,21) //给参数a和c赋初值的情况;