gpt4 book ai didi

java - 对参数传递感到困惑

转载 作者:行者123 更新时间:2023-11-30 08:52:14 26 4
gpt4 key购买 nike

我对在 Java 中传递给方法的信息有点困惑。我目前正在 Oracle 网站上学习 Java 基础知识,虽然我理解的大部分内容都没有问题,但有些事情对我来说还不够清楚。

https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

这是我有疑问的地方。当他们编写以下代码时...

public void moveCircle(Circle circle, int deltaX, int deltaY) {
// code to move origin of circle to x+deltaX, y+deltaY
circle.setX(circle.getX() + deltaX);
circle.setY(circle.getY() + deltaY);

// code to assign a new reference to circle
circle = new Circle(0, 0);
}

circle = new Circle(0, 0); 是什么意思?它是创建一个新的 Cicle 对象还是什么?我认为让我感到困惑的是如何在方法声明中使用对象参数。

谁能给我解释清楚什么是传递引用数据类型?

最佳答案

从一个更简单的例子开始:

public class Main  {

public static void main(String... args) {
int x = 7;
add(x);
System.out.println(x);
}

public static void add(int y){
y = 10;
}
}

您希望这段代码打印出什么?

它打印出 7 因为即使我们重新分配 add() 函数接收到的参数,也不会影响传递的原始值进入功能main() 方法中的 x 变量仍然是 7。

示例代码只是向您展示了一个更复杂的示例,其中使用了对象而不是基元。您应该吸取的教训是,在函数中重新分配参数不会影响它们的原始值

关于java - 对参数传递感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com