一、包

包语句

通过关键字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.区分有包名的类
       如果一个源文件引入了两个包中同名的类,那么在使用该类时,不允许省略包名 。