1、包的基本概念
包是一个文件夹,它是类的一种特殊的性质,可以更合理地管理大量的类文件,设置他人对类成员的访问权等。
在用Java开发大型项目时,通常要把类分门别类地存到文件里,再将这些文件一起编译执行,这样的程序代码将更易于维护。同时在将类分割开之后,对于类的使用也就有了相应的访问权限。
所谓的包(package)指的就是一个文件夹,即在不同的文件夹之中可以保存同名的类文件。
包的使用方法:在类或接口的最上面一行加上package的声明。通常包全部用小写字母命名。
package的声明方法如下:
package package名称[.package名称2.package名称3……];
package com.xy.util;
程序中如果有package语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条package语句。
经过package的声明之后,同一文件内的接口或类就都会被保存在相同的package中。
包的名字有层次关系,各层之间以点分隔。包层次必须与Java开发系统的文件系统结构相同。
若包声明如下:package java.awt.a,则文件中的接口和类都存放在…java\awt\a目录下。
2、包的导入
package导入方法如下:
import 包名.类名;
若某个类需要被访问时,则必须把这个类公开出来,即此类必须声明成public。通过import命令,可将某个package内的整个类导入,后续程序可直接使用类名称,而不用再写上被访问的package的名称。
若在不同的package中存在相同类名的public类,若要访问某个public类的成员时,在程序代码内必须明确地指明“被访问package的名称.类名称”。
如果说一个项目之中有几百个类时,为了方便导入可以使用“包.”的形式完成,即import 包名.*;
。虽然现在使用的是“包.”,但实际上并不表示此包之中的所有类都会被导入,导入的时候也只是导入所需要的类,不需要的类是不会有任何加载的,所以分开导入和使用“*”导入从性能上讲是完全一样的。
3、JDK常用包
SUN公司在JDK中为程序开发者提供了各种实用类,这些类按功能不同分别被放入了不同的包中,供开发者使用。下面简要介绍其中最常用的几个包:
(1)java.lang—包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。在java.lang包中还有一个子包:java.lang.reflect,用于实现java类的反射机制。
(2)java.awt—包含构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
(3)avax.swing—此包用于建立图形用户界面,包中的组件相对于java.awt包而言是轻量级组件。
(4)java.applet—包含applet运行所需的一些类。
(5)java.net—包含执行与网络相关的操作的类。
(6)java.io—包含能提供多种输入/输出功能的类。
(7)java.util—包含一些实用工具类,如定义系统特性、与日期日历相关的方法。
3、类成员的访问控制权限
在Java中有4种访问控制权限,分别为private、default、protected、public。
1. private访问控制符
如果一个成员方法或成员变量名的前面使用了private访问控制符,那么这个成员只能在这个类的内部使用。
2. default默认访问控制符
如果一个成员方法或成员变量名前面没有使用任何访问控制符,就称这个成员所拥有的是默认的(default)访问控制符。默认的访问控制成员可以被这个包中的其他类访问。如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员。
3. protected访问控制符
如果一个成员方法或成员变量名前面使用了protected访问控制符,那么这个成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。
4. public访问控制符
如果一个成员方法或成员变量名前面使用了public访问控制符,那么这个成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。
4、打包工具──Jar命令的使用
Jar文件即Java archive file的缩写,其应用与Java息息相关。Jar文件就是一种压缩文件,与常见的ZIP压缩文件格式兼容,习惯上称之为Jar包。
如果开发者开发了许多类,当需要把这些类提供给用户使用时,通常都会将这些类压缩到一个Jar文件中,以Jar包的方式提供给用户使用。只要别人的classpath环境变量的设置中包含这个Jar文件,Java虚拟机就能自动在内存中解压这个Jar文件,把这个Jar文件当做一个目录,在这个Jar文件中去寻找所需要的类名及包名所对应的目录结构。
Jar命令是Java中提供的一个非常有用的命令,可以用来对大量的类(.class文件)进行压缩,然后存为.Jar文件。
那么通过Jar命令所生成的.Jar压缩文件又有什么优点呢?一方面,可以方便管理大量的类文件,另一方面,进行了压缩也减少了文件所占的空间。
对于用户来说,除了安装JDK之外什么也不需要做,因为SUN公司已经帮开发者做好了其他的一切工作。
在命令行窗口下运行jar --help程序,就可以看到下图所示的界面。