包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java package提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。
一、包的作用
1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
二、包的定义
在一个.java文件中可以一个public类和多个非public类,如果要将这些类组织在一个包当中,则在.java文件中除注释以外的第一行使用关键字package即可实现。当需要调用此包中的类时,就可以使用关键字import进行导入。在定义包的时候,应该注意几点:
1 为了尽量使包名保持唯一性,包名通常采用小写、按倒写互联网址的形式进行定义。如:com.hank.www表示包文件放置的文件路径为com/hank/www。
2 在进行命名包时,应该避免使用与系统发生冲突的名字,如java.lang、java.swing等。
三、java包创建和使用步骤
步骤1在C盘根目录下创建java文件夹,其下放置有源文件HelloWorld.java和MyTest.java。编写包源文件代码HelloWorld.java和测试源文件代码MyTest.java。如下:
//HelloWorld.java
package com.hank.www;
public class HelloWorld
{
public HelloWorld(){System.out.println("Hello,World !");}
public void display(){System.out.println("Welcome to the java programming world !");}
}
//MyTest.java
import com.hank.www.HelloWorld;
public class MyTest
{
public static void main(String[] args)
{
HelloWorld hw=new HelloWorld();
hw.display();
}
}
步骤2在c:/java文件夹下创建目录文件夹以存储包,路径为:c:/java/com/hank/www,此例中将HelloWorld.class存放在c:/java/com/hank/www文件夹下。
步骤3 编译源文件HelloWorld.java,首先应该进入源文件夹,即为cd c:/java->javac –d c:/java HelloWorld.java,产生的HelloWorld.class便存放在c:/java/com/hank/www文件夹下。
步骤4 编译测试文件MyTest.java,即为javac MyTest.java,运行java MyTest即实现了包的创建和导入。
[注]:在使用命令javac –d <directionary>之前,必须在c:/java中先创建好包路径c:/java/com/hank/www,因为该命令不会自动创建文件夹。
Reference:
Bruce Eckel <<Thinking in Java>>4-th Edition
www.sun.com <<jdk1_5_0 documents>>
www.chblogs.com/guenli/articles/1063102.html