Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于使用带参数的方法的困惑_Java - Fatal编程技术网

Java 关于使用带参数的方法的困惑

Java 关于使用带参数的方法的困惑,java,Java,首先,我刚开始通过教程学习java。 所以我一直在学习这些教程。 我有一个问题-为什么我们使用带参数的方法? 下面是教程的屏幕截图,其中有两个类:Apples.java(Main)、Tuna.java。 现在,在Tuna.java中,为什么他要在simpleMessage方法中添加“String name”? 难道不是这样吗: public class tuna { public void simpleMessage(){ String name; sys

首先,我刚开始通过教程学习java。 所以我一直在学习这些教程。 我有一个问题-为什么我们使用带参数的方法? 下面是教程的屏幕截图,其中有两个类:Apples.java(Main)、Tuna.java。 现在,在Tuna.java中,为什么他要在simpleMessage方法中添加“String name”? 难道不是这样吗:

public class tuna {
    public void simpleMessage(){
        String name;
        system.out.println("Hello"+name);
    }
}
苹果

金枪鱼


在方法中将其声明为参数的原因是您可以向其传递值:

public static void main(String[] args)
{
    Tuna tuna = new Tuna();
    tuna.simpleMessage("Manpreet");
}
输出:

曼普里特

如果在方法中声明
name
,则无法向其传递任何内容

public void simpleMessage()
{
    String name = "Manpreet";
    system.out.println("Hello"+name);
}
在上述情况下,名称是在方法中声明的,因此我可以在方法中填充它,但不能通过向其传递值来填充它

在下面的示例中,我将值“Manpreet”传递给参数
name

public void simpleMessage(字符串名称)


tuna.simpleMessage(“Manpreet”)

您编写的代码将生成NullPointerException,因为您只声明了变量。如果将建议的构造与参数一起使用,则变量
name
中将有一个值,因为它已作为参数传递

假设的代码将输出
hellonAll
,因为变量中没有值

难道不是这样吗

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
对象时丢失。

该字符串是方法的参数。方法可以接受参数,这些参数将成为方法签名的一部分,如:

public void receiveString(String test)


参数用于在方法之间传递信息。请记住,Java始终是按值传递的(传递的变量在其原始范围内不会受到影响)。

调用该方法时,您正在向该方法传递一个值。如果您只是在方法中声明它,那么您不能向它传递任何值。例如:
simpleMessage(“Manpreet”)将输出
manpret
…正常。还有必要在括号内声明变量吗?如果在括号内声明,则它不是该方法的“变量”,而是该方法的“参数”。如果在方法中声明它,则它是一个“变量”。是的,您必须在方法声明后的括号内声明参数…`public class tuna{public void simpleMessage(name){String name;system.out.println(“Hello”+name);}}}}`这是怎么回事?@manpreitsingh它不会编译…您应该在IDE中尝试这些东西,以便看到发生了什么。我知道,但我真的找不到为什么?
private int receiveInt(int test)