gpt4 book ai didi

java - "this"指的是哪里

转载 作者:行者123 更新时间:2023-12-01 11:02:53 25 4
gpt4 key购买 nike

伙计,我有一个非常简单的代码,我在其中打印“this”和该类的“object”。根据理论,“this”指的是当前的“对象”,但在我的代码中,“this”看起来并不是指当前的对象。需要一些指导,请

这是我的输出:

costructor this hash : Sandbox.Apple@1540e19d
newApple hash : Sandbox.Apple@1540e19d
this hash : Sandbox.Apple@1540e19d
costructor this hash : Sandbox.Apple@677327b6
apples hash : Sandbox.Apple@677327b6
this hash : Sandbox.Apple@1540e19d

我的问题是为什么输出的最后一行是

this hash : Sandbox.Apple@1540e19d

指的是1540e19d而不是677327b6

public class ThisKeyword {

public static void main(String[] args) {
// TODO Auto-generated method stub

Apple newApple = new Apple("Green Apple");
System.out.println("newApple hash : " + newApple);

newApple.calculateQuantity();
newApple.testThis();
}

}

class Apple {
String name;

public Apple(String name) {
this.name = name;
// TODO Auto-generated constructor stub
System.out.println("costructor this hash : " + this);
}

public void calculateQuantity() {

System.out.println("this hash : " + this);
}

public void testThis() {
Apple apples = new Apple("Red Apple");
System.out.println("apples hash : " + apples);
System.out.println("this hash : " + this);
}

}

最佳答案

它正在正常工作。

您在这里创建了两个 Apple 对象,newApple(在 main 方法中创建)和 apples(在 testThis() 中创建)。

在 Apple.testThis() 中,System.out.println("this hash : "+ this); 行引用了您调用它的 Apple 对象,该对象是变量 newApple,而不是苹果

关于java - "this"指的是哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205753/

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