首页 > 代码库 > JAVA 基础 包(package)

JAVA 基础 包(package)

包(package)

package的作用

关键字package和import

当编写一个JAVA源码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.java

而在编译单元中可以有一个public类,该类的名称必须和文件的名称相同。文件中允许有其他类,但是不能是public类。

 

当编译一个.java文件时,文件中的每个类都会有一个后缀为.class的输出文件,文件名和类名相同。

Java可运行程序是一组可以打包压缩为一个Java文档文件(JAR,使用Java的jar文档生成器)的.class文件。JAVA解释器负责这些文件的查找、装载和解释。

 

类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。

因此每个文件都有一个构件(每一个都有它们自己独立的.java和.class文件)。如果希望这些构件从属于同一个群组,就可以使用关键字package。

 

如果使用package语句,必须是文件中除注释外的第一句代码。如下:

package access;

如果想要使用access包,则需要使用关键字import。如下:

import access.*;

以上内容摘自《Thinking in Java》。由以上描述可知,包的作用实际上和C++中的命名空间(namespace)十分相似。


要点

为了避免package名称的独一无二,一般的命名方法是:

(1)第一部分应该是类的创建者的反顺序的Internet域名。

(2)第二部分是把package名称分解为机器上的一个文件目录。

这样Java程序运行并加载.class文件时,就可以根据package名找到相应的路径。

eg:

package net.mindview.simple;

 

 


JAVA访问权限

JAVA中访问控制权限根据权限由大到小依次为:public > protected > 包访问权限(没有关键字) > private

注:以下为了便于说明各访问权限,不妨做一个形象的比喻。同一个包中的类可以视为朋友关系;有继承关系的类可以视为父子关系同一个类中的所有成员都视为自己

作用域 自己(当前类) 朋友(同一package) 子孙(继承关系) 其他package 
public 可访问 可访问 可访问 可访问
protected 可访问 可访问 可访问 不可访问
friendly 可访问 可访问 不可访问 不可访问
private 可访问 不可访问 不可访问 不可访问

包访问权限

JAVA默认的访问权限没有任何关键字,通常是指包访问权限(有时也表示为friendly)。

这意味着当前包中的所有其他类对包访问权限的成员都有访问权限。但是对于非本包的类,这个成员却是private

由于一个编译单元(即.java文件)只能隶属于一个包,所以同一个编译单元中的所有类彼此可以相互访问。

自己朋友类可以访问。


public访问权限

所有人均可以访问。


private访问权限
自己可以访问(除了包含该成员的类以外,任何其他类都无法访问)。

 

protected访问权限

自己朋友类子孙类可以访问。

JAVA 基础 包(package)