# 39. java 中的包和访问修饰符

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

# 1. 包的作用

  1. 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  2. 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  3. 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

提示

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 语句,则必须是类的第一行有效代码。