包的声明和引入:在Java语言系统中,Java编译器为每一个类生成一个字节码文件(.class),为了对类文件进行分层和按用途分类管理,同时也为了解决相同类名的文件冲突的问题,Java提供了包机制来管理类名空间。一般情况下,应将相关的类组织到同一个包中。使用包提供了包的封装和存取权限。

一个包可以包含若干个类,还可以包含若干个包

包被放在当前目录或指定目录下,该指定目录要在操作系统环境变量表中的classpath参数的值包含着,以便系统能够搜索到该指定目录下的包和包中的类文件。

包名本身就是一个目录,包和子包之间用.隔开,以表明包的层次目录结构。(包名就是文件夹名,类名就是文件名)。

在编写Java源程序时,对一个Java程序文件可以使用声明报道语句指定其中每个类的字节码文件所属的包。

声明包语句的关键字为package,后面跟着包名或者包的层次目录名,该语句若存在则必须是Java程序文件中的第一条语句

改程序文件被编译后就把每个类的字节码文件保存到指定的包中。若一个Java程序文件不带有声明包的语句,则其中每个类的字节码文件被保存到当前目录中,即被编译的Java程序文件所在的的目录中

像程序中引入包的关键字为import,后面跟着包名和类名,包名和类名之间也必须用句点分开。

若需要引入包中的所有类,则需要用*代替类名,例如import java.io.*;,语句向所在的Java程序文件中引入了java.io包中的所有类。

引入包语句import必须出现在声明包语句package之后和所有类定义模块之前的位置。

当编译带有声明包语句的程序文件时,在编译命令中,必须使用-d参数项,后面跟着包所在的目录路径,若把包保存在当前目录时,则使用句点代替。
例如程序a.java开头为package myJava;,编译指令为javac -d . a.java,编译命令执行后将在当前目录下建立一个包名为myjava的目录,此目录中包含文件a.class

在一个Java程序文件中,系统将自动引入java.lang包中的所有类 (自动加上import java.lang.*;),在java.lang包中含有常用的系统类,如字符串类String,基本数据类型的包装类,数学函数类Math,系统基类Object,系统状态类System.Java系统类库中包含有各种用途的包,如进行文件操作的io包、进行网络应用的net包、进行数据库操作的sql包、进行可视化图形用户窗口界面操作的awt包、进行集合数据操作的util包等.

  • java.lang包:java.lang包是Java语言的核心类库,包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。每个Java程序运行时,系统都会自动地引入java.lang包,所以这个包的加载是缺省的。
  • java.io包: java.io包是Java语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其他Java程序做数据交换所使用的类,如基本输入/输出流、文件输入/输出流、过滤输入/输出流、管道输入/输出流、随机输入/输出流等。凡是需要完成与操作系统有关的较底层的输入输出操作的Java程序,都要用到java.io包。
  • java.util包:java.util包包括了Java语言中的一些低级的实用工具,如处理时间的Date类,处理变长数组的Vector类,实现栈和杂凑表的Stack类和HashTable类等,使用它们开发者可以更方便快捷地编程。
  • java.awt包:java.awt包是Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,主要在三个方面提供界面设计支持:低级绘图操作,如Graphics类等;图形界面组件和布局管理,如Checkbox类、Container类、LayoutManager接口等;以及界面用户交互控制和事件响应,如Event类。
  • java.applet包:java.applet包是用来实现运行于Internet浏览器中的Java Applet的工具类库,它仅包含少量几个接口和一个非常有用的类:java . applet . Applet。
  • java.net包: java.net包是Java语言用来实现网络功能的类库。由于Java语言还在不停地发展和扩充,它的功能,尤其是网络功能,也在不断地扩充。目前已经实现的Java网络功能主要有:底层的网络通信,如实现套接字通信的Socket类、ServerSocket类;编写用户自己的Telnet、FTP、邮件服务等实现网上通信的类;用于访问Internet上资源和进行CGI网关调用的类,如URL等。
  • java.awt.event包: java.awt.event包是对JDK 1.0版本中原有的Event类的一个扩充,它使得程序可以用不同的方式来处理不同类型的事件,并使每个图形界面的元素本身可以拥有处理它上面事件的能力。
  • java.sql包: java.sql包是实现JDBC(Java database connection)的类库。利用这个包可以使Java程序具有访问不同种类的数据库的功能,如Oracle,Sybase,DB2,SQLServer等。