gpt4 book ai didi

在 main 之外的方法中调用 Java 对象

转载 作者:行者123 更新时间:2023-12-05 08:35:07 24 4
gpt4 key购买 nike

我有一个简单的问题,我已经坚持了一段时间,但我找不到答案。基本上,我正在创建一个对象并尝试在不使用静态变量的情况下访问变量,因为有人告诉我这是错误的方法。这是问题的一些示例代码。我在第一个类中收到无法解析为变量的错误。我希望能够做的是在 main 之外的其他方法中访问 t.name,但也在其他类中。以前为了解决这个问题,我会使用 Test2.name 并在 Test2 类中将变量设为静态,如果我错了,请纠正我,但我认为这是错误的方式去做吧。任何帮助将不胜感激 =)

public class Test {
public static void main(String[] args) {
Test2 t = new Test2("Joe");
}

public void displayName() {
System.out.println("Name2: " + t.name);
}
}

public class Test2 {
String name;

public Test2 (String nm) {
name = nm;
}
}

最佳答案

我看到其他人已经发布了代码片段,但他们实际上并没有发布其中任何一个有效的原因(在撰写本文时)。

你得到编译错误的原因是你的方法

public static void main(String[] args) {

Test2 t = new Test2("Joe");
}

变量t的作用域就是那个方法。您将 Test2 t 定义为仅在 main(String[] args) 方法中,因此您只能在其中使用变量 t方法。但是,如果您要像这样使变量成为一个字段,并创建一个新的 Test 类实例,

public class Test {
Test2 t;
public static void main(String[] args) {
Test test = new Test();
test.t = new Test2("Joe");
test.displayName();
}

public void displayName() {
System.out.println("Name2: " + t.name);
}
}

那么您应该不会再遇到任何编译错误,因为您将变量 t 声明在类 Test 范围内。

关于在 main 之外的方法中调用 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168088/

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