Java主类实例访问

时间:2013-12-20 10:36:09

标签: java class compilation java-7 main

我无法编译以下代码。无法理解这里的编译过程。为什么主类实例对其他类不可见( 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);
 }

2 个答案:

答案 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命名约定。类名必须以大写字母开头。变量和方法必须是驼峰式的。