我无法编译以下代码。无法理解这里的编译过程。为什么主类实例对其他类不可见( 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);
}
答案 0 :(得分:7)
System.out.println(t.i);
语句应在块或方法中。
例如,你可以 将它放在一个块中(静态或非静态,永远不要)。
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):
答案 1 :(得分:2)
System.out.println(t.i);
必须在某种方法中。
public class Test {
public int i = 10;
public static void main(String[] args) {
System.out.println("test main");
}
}
class Test1 {
Test t = new Test();
public void printI(){
System.out.println(t.i);
}
}
还坚持使用java命名约定。类名必须以大写字母开头。变量和方法必须是驼峰式的。