首先,我刚开始通过教程学习java。 所以我按照这个教程。 我有一个问题 - 为什么我们使用带参数的方法? 下面是教程的屏幕截图,其中有两个类--Apples.java(Main),Tuna.java。 现在,在Tuna.java中,为什么他把' String name'在simpleMessage方法中? 不能是这样的:
public class tuna {
public void simpleMessage(){
String name;
system.out.println("Hello"+name);
}
}
苹果
金枪鱼
答案 0 :(得分:0)
在方法中将其声明为参数的原因是您可以将值传递给它:
public static void main(String[] args)
{
Tuna tuna = new Tuna();
tuna.simpleMessage("Manpreet");
}
输出:
Manpreet
如果在方法中声明name
,则无法向其传递任何内容。
public void simpleMessage()
{
String name = "Manpreet";
system.out.println("Hello"+name);
}
在上面的情况下,名称是在方法中声明的,所以我可以在方法中填充它,但不能通过向它传递值。
在下面的示例中,我将值“Manpreet”传递给参数name
:
public void simpleMessage(String name)
tuna.simpleMessage("Manpreet");
答案 1 :(得分:0)
您编写的代码会产生NullPointerException,因为您只声明了您的变量。如果您使用带参数的建议构造,变量name
中将有一个值,因为它已作为参数传递。
您假设的代码会输出Hellonull
因为您的变量没有值。
答案 2 :(得分:0)
难道不是吗?
public class tuna { public void simpleMessage(){ String name; System.out.println("Hello"+name); } }
不,这段代码会产生错误,因为必须为局部变量赋值。
而且:
public class tuna {
public void simpleMessage(){
String name = "Manpreet";
System.out.println("Hello "+name);
}
}
将始终打印相同的
Hello Manpreet
(不是很有用,对吗?)
正确的方法是你在图片中发布的那个,让我们看看:
在此行中,您等待用户的输入:
String name = input.nextLine();
按下enter键时,输入的内容存储在变量name
中,并通过方法中的参数传递给tuna对象
tunaObject.simpleMessage(name);
关键是,name
只是两个类中匹配的变量名...但是这将是相同的:
String userName = input.nextLine();
tunaObject.simpleMessage(userName);
您在此处传递的是值,变量名称在到达tuna
对象时会丢失。
答案 3 :(得分:-1)
该字符串是该方法的参数。方法可以采用参数,这些参数成为方法签名的一部分,如:
public void receiveString(String test)
或
private int receiveInt(int test)
参数用于在方法之间传递信息。请记住,Java始终是按值传递的(您传递的变量不会在其原始范围内受到影响)。