====== 包 ======
使用包 ''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