====== 包 ====== 使用包 ''package'' 来组织代码。类名的全称是 ''包名.类名''。 在代码文件前可以申明包名称: package a; public class Firstclass{ } 在Java虚拟机执行的时候,JVM只看完整类名,因此,只要包名不同,类就不同。包可以是多层结构,使用''.''隔开。例如:''java.util''。 需要注意:包没有父子关系。java.util和java.util.zip是不同的包,两者没有任何继承关系。 只要位于统一个包的类,可以互相使用。 ===== 文件目录 ===== 包名称需要和文件目录匹配,每一个.就是一层目录。如: package_sample └─ src ├─ hong │ └─ Person.java │ ming │ └─ Person.java └─ mr └─ jun └─ Arrays.java ===== 引用 ===== 如果想使用某一包内的类,有如下方式: - 直接写完整类名 - 使用import,导入包的完整类名 如果有两个class的名称相同,均想引用使用时,只能import其中一个,另一个必须使用完整类名。 为了避免名字冲突,我们需要确定唯一的包名。推荐的做法是使用倒置的域名来确保唯一性。 ===== 编译与运行 ===== 如果我们有如下目录: work ├── bin └── src └── com └── itranswarp ├── sample │ └── Main.java └── world └── Person.java bin目录用于存放编译后的class文件。如何一次性编译好所有源码? 在work目录下 javac -d ./bin src/**/*.java 其中 ''-d'' 参数用于指定编译后的目录。 之后就可以直接运行了,其中需要指定classpath。 java -cp bin com.itranswarp.sample.Main