Java 包
包是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在D盘根目录下创建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在D:/java文件夹下创建目录文件夹以存储包,路径为:D:/java/com/hank/www,此例中将HelloWorld.class存放在D:/java/com/hank/www文件夹下。
步骤3 编译源文件HelloWorld.java,首先应该进入源文件夹,即为cd D:/java->javac –d D:/java HelloWorld.java,产生的HelloWorld.class便存放在c:/java/com/hank/www文件夹下。
步骤4 编译测试文件MyTest.java,即为javac MyTest.java,运行java MyTest即实现了包的创建和导入。
[注]:在使用命令javac –d 之前,必须在D:/java中先创建好包路D: /java/com/hank/www,因为该命令不会自动创建文件夹。
四:系统常用包
1、Java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等
3、java.util包:Java的实用工具类库Java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector)
、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable类
4、java.util.zip包:实现文件压缩功能
5、java.lang.reflect包:提供用于反射对象的工具
6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库
7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行
8、java.applet包
9、java.NET包:实现网络功能的类库有Socket类、ServerSocket类
10、java.corba包和java.corba.orb包
11、java.awt.datatransfer包:处理数据传输的工具类,包括剪贴板,字符串发送器等
12、java.awt包:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如 Checkbox类、Container类、LayoutManger接口等,以及界面用户交互控制和事件响应,如Event类
13、java.awt.event包:GUI事件处理包。
14、java.sql包:实现JDBC的类库。