一、包
包语句
通过关键字package声明包语句。
package语句作为Java源文件的第一条语句,为该源文件中声明的类指定包名。
package语句的一般格式为:
package 包名;
例如:
package sunrise;
package sun.com.cn;
有包名的类的存储目录
如果一个类有包名,那么就不能在任意位置存放它,否则虚拟机将无法加载这样的类。
程序如果使用了包语句,例如:package tom.jiafei;
那么存储文件的目录结构中必须包含有如下的结构
…\tom\jiafei
如:
c:\1000\tom\jiafei
并且要将源文件编译得到的类的字节码文件保存在目录c:\1000\tom\jiafei中(源文件可以任意存放)。
运行有包名的主类
如果主类的包名是tom.jiafei,那么主类的字节码一定存放在…\tom\jiefei目录中,运行时必须到tom\jiefei的上一层(即tom的父目录)目录中去运行主类。
假设tom\jiefei的上一层目录是1000,那么,必须如下格式来运行:
C:\1000\java tom.jiafei.主类名
二、import语句
引入类库中的类
使用import语句可以引入包中的类。在编写源文件的时候,除了自己编写的类以外,经常需要使用Java提供的许多类,这些类可能在不同的包中。
在学习Java语言时,使用已经存在的类,避免一切从头做起,这也是面向对象编程的一个重要方面。
为了能够使用Java提供给我们的类,可以使用import语句引入包中类。
在一个Java源程序中可以有多个import语句,它们必须写在package语句(假如有package语句的话)和源文件中类的定义之间。
Java为我们提供了大约130多个包,比如:
java.lang 包含所有的基本语言类
javax.swing 包含抽象窗口工具集中的图形、文本、窗口GUI类
java.io 包含所有的输入输出类
java.util 包含实用类
java.sql 包含操作数据库的类
java.nex 包含所有实现网络功能的类
java.applet 包含所有实现Java applet的类
引入自定义包中的类
用户程序可以使用tom.jiafei包中的类
如:import tom.jiafei.*;
使用非类库中有包名的类,也要使用import语句。
使用无包名的类
之前,我们在源文件中一直没有使用包语句,因此各个源文件得到的类都没有包名。
如果一个源文件中的类想使用无名包中的类,只要将这个无包名的类的字节码和当前类保存在同一目录中即可。
避免类名混淆
1.区分无包名和有包名的类
如果一个源文件使用了一个无名包中的A类,同时又用import语句引入了某个有包名的同名的类,如tom.jiafei中的A类,就可能引起类名的混淆。
2.区分有包名的类
如果一个源文件引入了两个包中同名的类,那么在使用该类时,不允许省略包名 。