我无法编译以下代码。无法理解这里的编译过程。为什么主类实例对其他类不可见(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);
语句应位于块或方法中。
例如,您可以将其放置在块中(静态或非静态,没关系)。
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):
- 为什么System.out.println()必须在方法中?
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 命名约定。类名必须以大写字母开头。变量和方法必须采用驼峰大小写。