在方法参数中声明变量和在方法中声明变量之间是否存在差异?两者都打印出相同的变量,但我认为存在差异。
答案 0 :(得分:3)
通过将变量decalring作为方法参数,您可以将变量传递给方法
public void printIt(String text){
System.out.println(text);
}
但是如果你在这样的方法中声明变量:
public void printIt(){
String name;
//you can't pass
}
答案 1 :(得分:1)
如果你指的是我的想法,那么两者之间就有很大差异。以此为例:
public void printText() {
System.out.println("Hello World");
}
这会打印出文本Hello World
。现在看看这个方法:
printText("Hello World");
public void printText(String text) {
System.out.println(text);
}
这两个示例中的后一个提供了更大的灵活性,因为您可以使用您喜欢的任何参数调用该方法,而前者每次只会打印Hello World
。当然,根据您希望方法执行的操作,一个表单可能比另一个表单更合适,但方法参数允许重用。
答案 2 :(得分:0)
来自Javadoc
局部变量类似于对象如何在字段中存储其状态,a 方法通常会将其临时状态存储在局部变量中。该 声明局部变量的语法类似于声明字段 (例如,
int count = 0;
)。没有特殊的关键字指定 变量为本地变量;这种决心完全来自于 声明变量的位置 - 介于...之间 打开和关闭方法的大括号。因此,局部变量是 仅对声明它们的方法可见;他们不是 可以从班上其他人那里获得。参数 ...回想一下main方法的签名是公共的 static void
main(String[] args)
。这里,args变量是 此方法的参数。要记住的重要一点是 参数始终归类为"variables"
而不是"fields"
。
答案 3 :(得分:0)
还可以通过在Java中的方法中定义参数(我猜这同样适用于C ++),这会导致方法重载。
请看下面提供的示例:
public void createPerson(int ID, String name) {
// do something here
}
public void createPerson(double height, String name) {
// do something here
}
public void createPerson(double height, String name, boolean testIt) {
// do something here
}
所以它的帮助主要是改变方法的方法签名,这导致开发人员在3种方法中实现不同的方法体,但名称相同但方法不同签名。
进一步阅读Oracle Java中以下link中的方法。
希望这对您的问题有所帮助。