我是编程新手。
用外行人的话说,当有人说“传递价值”时,这是什么意思?
有人告诉我:
public Money (int cost)
需要传递一个值,我不明白其含义。
感谢。
答案 0 :(得分:3)
Java通过引用操作对象,所有对象变量都是引用。但是,Java不通过引用传递方法参数;它按值传递它们。
以该代码为例:
import java.util.HashMap;
public class Test {
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "Value 1");
map.put(2, "Value 2");
map.put(3, "Value 3");
map.put(4, "Value 4");
map.put(5, "Value 5");
System.out.println(map);
// existing key but new value
map.put(2, "Value 7");
System.out.println(map);
}
}
请注意,public void Money (int cost)
{
cost = cost + 2;
}
变量已添加2。现在,假设我们有一些调用Money方法的代码:
cost
在main方法中,我们将变量public static void main(String [] args)
{
int passing = 3;
Money (passing);
System.out.println("The value of passing is: " + passing);
}
设置为3,然后将该变量传递给passing
方法,然后将2加到传入的变量中。
您认为Money
来电会打印出来怎么样?好吧,如果你认为它会打印出System.out.println
你错了。它实际上会打印出5
。当我们在Money方法中明确添加2时,为什么打印出3?
它打印出的原因3
是因为Java由值传递参数 - 这意味着当该呼叫为3
是由,Java将刚创建的副本Money
变量和该副本是传递给Money方法的 - 而不是存储在passing
方法中的原始变量。这就是为什么Money方法中main
发生的任何事情都不会影响main方法中的cost
变量。
答案 1 :(得分:0)
传递值是发送方法或类使用的指定值。
在您显示的行中,名为 cost 的整数的值被传递给类对象 Money (我假设它是一个类,因为类通常是大写的)由另一个对象。
方法的参数是必须由任何对象调用它传递的值。
传递只是从另一个对象向该对象发送一个值。当你调用方法或类时,括号中的内容是传递给它的内容(尽管传递给类时,必须存在构造函数)。
答案 2 :(得分:-1)
在Java中,从结果中,您将看到:
当你传递一个原始类型的值,比如int,double,float等时,但是你修改了接受方法中的值,原始变量的值不会改变。
传递对象时,如果在接受方法中修改对象数据,则需要修改原始对象。
了解这一点,你知道在编写代码时你期望得到什么结果。
关于术语,请参阅其他答案/评论以获取更多详细信息。