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找不到OuterClassmain方法(不存在),上面代码的main方法属于InnerClass。而在OuterClass里定义一个内部类InnerClass是被允许的,所以也不会报错。

扩展阅读(看不懂就算了)

上面的代码无法运行是因为OuterClass缺少main方法,我们可以给OuterClass添加一个main方法,调用InnerClassmain方法,就可以打印"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");
		}
	}
	
}

但是上面这么做意义不大。