gpt4 book ai didi

java - 代码中 "this"关键字是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:24 25 4
gpt4 key购买 nike

这是我的以下代码:

public class SharedState {

private static final List<SharedState> list = new ArrayList<>();

public SharedState() {
list.add(this); // What does "this" mean here?
System.out.println(list);
}


public static void main(String[] args) {

Thread t1 = new Thread("t1") {
@Override
public void run() {
/* try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
} */
new SharedState();
}
};
Thread t2 = new Thread("t2") {
@Override
public void run() {
new SharedState();
}
};

t1.start();
t2.start();
}

@Override
public String toString() {
return "SharedSate";
}
}
  • 我的理解是this指的是当前对象,这里 list.add(this)正在添加SharedSate到列表中,对吗?这意味着它正在调用 toString() ,然后打印出list在控制台上。我说得对吗?
  • 我只是想知道这两行是如何工作的:

    list.add(this);

    System.out.println(list);

最佳答案

here list.add(this) is adding SharedSateto the list, right? So that means it's invoking toString()

你的陈述的第二部分是错误的。你从哪里得到的? add 方法从不调用 toString()

I just wanted to know how this two lines are working:

list.add(this);

System.out.println(list);

list.add(this) 将当前对象添加到列表中。

并且,在打印对象时,会调用 toString() 方法。如果类没有定义 toString 方法,每个对象将从 Object 父类(super class)中获取它。

关于java - 代码中 "this"关键字是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240186/

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