Java类里的代码书写规则
1. class结构体内,只能包含变量的声明语句和方法
例. JavaRule.java
package javarules; // class外只可以有package 和import声明
public class JavaRule {
static int classVar = 0; // 声明类的变量,允许
// classVar = 1 + 2; // 其他语句 不!允!许!,比如给变量重新赋值,写if for代码块等
public static void main(String[] args) { // 可以定义方法
}
static void methodA() {
}
// classVar = 1; // 不在方法内,也不是变量声明语句,不!允!许!
}
2. 一般而言,方法内部不能再定义内层方法。
以下代码是不被允许的:
public class JavaRule {
public static void main(String[] args) { // 可以定义方法
// 试图在main方法里再创建一个内部方法methodA,不被允许!
static void methodA() {
// do something
}
}
}
3. class
内可以定义其他class
,叫做内部类,本门课程不做讨论。
经常出现的一种问题:有的同学拷贝别人的代码,粘贴到自己的class
里,比如
OuterClass.java
public class OuterClass {
public class InnerClass{
public static void main(String[] innerArgs) {
System.out.println("Inside main method of InnerClass");
}
}
}
以上代码可以编译通过,但是无法运行:因为Java
找不到OuterClass
的main
方法(不存在),上面代码的main
方法属于InnerClass
。而在OuterClass
里定义一个内部类InnerClass
是被允许的,所以也不会报错。
扩展阅读(看不懂就算了)
上面的代码无法运行是因为OuterClass
缺少main
方法,我们可以给OuterClass
添加一个main
方法,调用InnerClass
的main
方法,就可以打印"Inside main method of InnerClass
"这句话了。
public class OuterClass {
public static void main(String[] args) {
InnerClass.main(args);
}
public class InnerClass{
public static void main(String[] innerArgs) {
System.out.println("Inside main method of InnerClass");
}
}
}
但是上面这么做意义不大。