最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包。一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了许多意想不到的错误。之后自己查阅了许多博客以及stackoverflow上的一些讲解,再结合编写代码试验,总算是稍微弄清楚了关于package的使用,在此为自己的理解做一个笔记。
package的简单定义如下:package是一个为了方便管理组织java文件的目录结构,并防止不同java文件之间发生命名冲突而存在的一个java特性。不同package中的类的名字可以相同,只是在使用时要带上package的名称加以区分。
在使用package的时候,如果java文件中使用了package,那么该java文件必须放在命名与package名称相同的目录下,比如:
package test;
public class Test {}
该文件的目录结构则为:…test/Test.java
又如:
package com.micheal.test
public class Test {}
java解释器会将package中的.解释为目录分隔符/,也就是说该文件的目录结构为:…com/micheal/test/Test.java
那么package中的类的访问权限是怎么样的呢?在同一package中的类是可以互相访问的,比如:
//Test1.java
package test;
class Test1 {}
//Test2.java
package test;
public class Test2 {
pu