Java程序的结构很简单(呃~~,相对于汇编来讲)。
任何一个Java程序都是由一个或者若干个类组成的。
.java文件是Java程序的源代码文件。每个.java文件都包含一个或多个类。类的定义是这样的:
class MyClass {
}
这里MyClass是自己定义的类的名字。通常类的名字中每个单词的第一个字母用大写。
那么下面这个类的名字就叫Demo。前面加了一个public是表示这个类是公开的。
Java对.java文件的内容和文件名有这样的限制:
1、. java文件中如果包含多个类,那么类与类之间不能重名。
重名是指字母和大小写都相同,大小写不相同的类名不算重名。比如说一个这样的 Demo.java 文件:
class Demo {
}
class Demo1 {
}
运行
javac demo.java
就知道这个文件是能够编译通过的,编译后目录下会出现Demo.class和Demo1.class两个文件。
不过这个.java文件就有点特别了:
class Demo {
public static void main(String[] args) {
System.out.println("this is clas Demo.");
}
}
class demo {
public static void main(String[] args) {
System.out.println("this is clas demo.");
}
}
这个文件同样能够通过编译,但是在Windows中,它只会生成Demo.class一个文件。这是因为Windows文件名不分大小写。这样当javac编译生成 demo.class的时候,原先的Demo.class的内容就被覆盖掉了。因此当运行:
java Demo
的时候就会出现 NoClassDefFoundError 的错误。
所以最好的方式是:一个.java文件中只包含一个类。
2、一个.java文件中最多只能包含一个public类,而且一般来讲这个public类的名字必须和文件名完全相同。
这里的“完全相同包括大小写。如果Demo.java的内容是这样:
public class deMO {
public static void main(String[] args) {
System.out.println("this is clas deMO.");
}
}
那么编译时会出现这样的错误:
C:\>javac demo.java
demo.java:1: 类 deMO 是公共的,应在名为 deMO.java 的文件中声明
public class deMO {
^
1 错误
有人认为javac对参数文件名的大小写不敏感,这是不对的。对于这个Demo.java,你运行一下
javac deMO.java
看看,竟然通过编译了,还可以运行。
以上就是Java对源代码.java文件的一些要求。我们一般按照最开始的Demo.java那种方式(如本文上面的截图)来编写代码。也就是说:
1、一个.java文件中定义且只定义一个公开类。
2、公开类的名字与文件名完全相同(包括大小写)。