一.包的概念:
包是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等。
四.系统常用包
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的类库。
五.java包创建和使用步骤
第一步:在F:\javaStudy\j2se\14中创建Tools.java和TestTools.java,编写包源文件代码Tools.java和测试源文件代码TestTools.java。如下
第二步:在F:\javaStudy\j2se\14中创建路径文件org/yangjie/test。
第三步:编译包源文件代码Tools.java,将编译后的Tools.java和Tools.class移入路径文件org/yangjie/test中。
第四步:编译测试文件TestTools.java,即javac TestTools.java,运行java TestTools就可以实现包的创建和导入。
特别注意点:当org/yangjie/test文件移动到F:\javaStudy后,编译TestTools.java,会找不到路径包,报错。
解决办法:设置环境变量classpath,路径为F:\javaStudy;,就能编译运行成功。
六.jar的命令