Java中有关无参和有参方法的综合编程问题,详细的编程代码是怎么样的
这个很简单,举个例子:
假设有个E类,里面有个方法叫getE
public class E
{
public int getE()
{
return 2;
}
}
可以看到,getE后面的括号里没有东西,这个方法返回了2。那这个就是无参方法。我调用
new E().getE();
这个实例化的E的对象就会收到一个值,值为2。当然这里改成
E e = new E();
e.getE();
更好,因为getE是有返回值的。如果后期要用这个返回值,那么就不能使用new后的E对象调用方法。当然这里只是拿E举个例子。
可以看到,无论是哪种方法,getE方法在调用时,不论是new E().getE()还是e.getE();getE后面的括号里一直是空的。因为在定义getE这个方法时括号内就是空的。调用无参方法不需要提供参数。
那么,如果我改改,改成这样:
public class E
{
public int getE(int userInput)
{
return userInput + 2;
}
}
那么这个时候,调用e.getE()就是不合法的了 。因为在定义getE方法时,我们要求在括号内提供一个int类型的值。而这就是有参方法。举个例子,当getE是一个有参方法时,下面的语句:
int a = 1;
String b = "1";
E e = new E();
e.getE();//不合法,有参方法调用时必须提供参数
e.getE(b);不合法,getE要求提供一个int类型的参数
e.getE(a);//合法,e接收到数字3
e.getE(2);//合法,e接收到数字4
当getE是一个无参方法时,下面的语句:
int a = 1;
String b = null;
E e = new E();
e.getE();//合法,e接受到数字2
e.getE(a);//不合法,无参方法调用时不能提供参数
e.getE(b);//不合法,无参方法调用时不能提供参数,即使参数为null或者空字符串也不行
e.getE(2);//不合法,无参方法调用时不能提供参数
这就是无参方法与有参方法