# 39. java 中的包和访问修饰符
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
# 1. 包的作用
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
提示
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
# 2. 包语句的语法
package pkg1[.pkg2[.pkg3…]];
举个例子:
// 表示 MyPhone 类在 com/phone 目录下
package com.phone;
// 表示 导入com/phone/parts目录下的 Memory 类
import com.phone.parts.Memory;
public class MyPhone {
// public 关键字表示这个属性可以被其他包使用
public Memory memory;
}
提示
- package 语句要和源文件的目录完全对应,大小写要一致。
- package 读作包。一般来说,类都会在包里,而不会直接放在根目录。
- 不同的包里可以有相同名字的类。
- 一个类只能有一个 package 语句,如果有 package 语句,则必须是类的第一行有效代码。