我无法编译以下代码。无法理解这里的编译过程。为什么主类实例对其他类不可见(test1)。为什么编译失败。请帮忙。
public class test {
public int i = 10;
public static void main(String[] args) {
System.out.println("test main");
}
}
class test1 {
test t = new test();
System.out.println(t.i);
}
最佳答案
System.out.println(t.i);
语句应该在 block 或方法中。
例如,您可以或者将它放在一个 block 中(静态或非静态,没关系)。
public class test1 {
test t = new test();
static { //static can be omitted
System.out.println(t.i);
}
}
或者地方在一个方法内
public class test1 {
test t = new test();
public static void printSomething() { //static can be omitted
System.out.println(t.i);
}
}
更多信息(感谢@vidudaya):
关于Java主类实例访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20701652/