Jar*_*rod 2 java variables syntax object
我有一个简单的问题,我已经坚持了一段时间,我找不到答案.基本上,我正在创建一个对象并尝试访问变量而不使用静态变量,因为我被告知这是错误的方法.以下是该问题的一些示例代码.我在第一个类中收到一个无法解析为变量的错误.我希望能够做的是访问t.namemain之外的其他方法,也可以访问其他类.为了解决这个问题,我会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;
}
}
Run Code Online (Sandbox Code Playgroud)
我看到其他人已经发布了代码片段,但是他们实际上没有发布为什么这样做有用(在撰写本文时).
您收到编译错误的原因是在您的方法中
public static void main(String[] args) {
Test2 t = new Test2("Joe");
}
Run Code Online (Sandbox Code Playgroud)
变量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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你不应该再得到任何编译错误,因为你声明变量t在类Test范围内.