一个.java文件中可以有许多类。但要注意以下几点:
1。只有一个类具有公共权限(也可以没有,但最多只能有一个)
2。文件的文件名。java文件必须是公共类的类名(一般来说,主方法是程序的条目。)
3。如果此文件中没有公共类,则文件名可以是任何类的名称
4编译此文件时。java文件,它将为每个类生成一个.class文件
一个java源文件中可以定义多个类,并且有import语句和package语句。请特别注意以下规则:源文件中只能有一个公共类。一个源文件可以有多个非公共类。源文件的名称应与公共类的类名一致。例如,如果源文件中公共类的类名为employee,则源文件应命名为employee员工.java.如果在包中定义了类,那么package语句应该位于源文件的第一行。如果源文件包含import语句,则应将其放置在package语句和类定义之间。如果没有package语句,import语句应该位于源文件的顶部。import语句和package语句对源文件中定义的所有类都有效。在同一个源文件中,不同的类不能有不同的包声明。类有几个访问级别,类也分为不同的类型:抽象类和最终类。这些将在下面的章节中介绍。除了上述类型之外,java还有一些特殊的类,比如内部类和匿名类。
为了更好地组织类,java提供了包机制。包是类的容器,用于分隔类名空间。如果未指定包名,则所有示例都属于默认的匿名包。例如,可以将所有相关类放在名为transportation的java包中。程序员可以使用package来指示源文件中的类属于哪个特定的包。package语句的格式为:packagepkg1[。pkg2[。pkg3
如果程序中有package语句,则它必须是源文件中的第一条可执行语句,并且前面只能有注释或空行。此外,一个文件最多只能有一个package语句。包的名称具有层次关系,层之间用点分隔。包层次结构必须与java开发系统的文件系统结构相同。通常,所有的包名都是小写字母,这与类名以大写字母开头,每个单词的第一个字母也是大写的命名约定不同。使用包描述时,不需要导入相同的包或包的任何元素。import语句仅用于将其他包中的类引入当前命名空间。当前包始终位于当前命名空间中。如果文件声明如下:packagejava.awt.image文件,文件必须存储在windows的javaawtimage目录或unix的java/awt/image目录中。总之,java引入包的主要原因是java本身的跨平台特性。因为java中的所有资源也是以文件的形式组织起来的,其中主要包含了大量需要组织和管理的类文件。java还使用目录树结构。虽然各种常用操作系统平台的文件管理都是以目录树的形式组织的,但它们对目录的分隔方式却各不相同。为了区别于各种平台,java使用了“.”分隔目录。