包的本质实际上就属于一个文件夹。在任何的一个项目里面你很难避免重复的类名称出现。而且如果所有的*.class文件都存放在一个目录之中,那么就有可能出现覆盖的情况。而这样就会造成项目的整体的开发困难,所以为了解决这样的冲突,所有的Java程序都应该保存在各自的目录里面,而这个目录就称为包。
一.包的定义
如果要想进行包的定义,只需要在*.java源文件的第一行编写:“ package 包名称; ”的语句即可。
一旦程序出现有包名称了,那么*.class文件在进行存放的时候就必须保存在相应的目录之中,不过这种手工创建目录的形式非常麻烦,所以在JDK进行Java程序编译的时候可以追加一些配置参数:
javac -d . 类.java
|-“-d”表示生成目录,根据package的定义生成;
|-“.”表示在当前所在的目录中生成目录;
在以后进行项目开发的过程之中,所有的*.java文件都一定要使用package定义包。
二.包的导入
开发之中一旦使用了包的定义之后,实际上就相当于把一个大的项目分别按照一定的要求保存在了不同的包里面(文件夹里面),但是这些程序类彼此之间一定会发生互相调用的情况,所以这种时候就需要采用导入包的处理方式。
注意:类使用class和public class的区别?
❤public class:文件名称必须与类名称保持一致,如果希望一个类被其他包所访问,则必须定义为public class;
❤class:文件名称可以与类名称不一致,在一个*.class文件中可以定义多个class,但是这个类不允许被其他包所访问。
最常用的打包编译:javac -d . *.java
另外需要注意一点,在上面的程序之中导入的时候采用的是import 包.类“”,这样只会导入一个类,如果说现在要想导入一个包中的多个类,建议可以直接采用通配符“*”完成。
这种“*”并不意味着要将该包中的全部类都进行导入,而是根据你的需求进行导入。
但是在很多开发情况中也有可能出现不同包但是相同类的情况。
三.系统常用包(了解)
系统常用开发包:
●java.lang:系统常用的基础类,例如:String、Object,此包从JDK1.1开始自动导入;
●java.lang.reflect:java反射编程包;
●java.math:数学支持包,但是支持有限;
●java.net:进行网络编程的开发包;
●java.sql:进行数据库开发的支持包;
●java.util:是java提供的工具程序包;
●java.io:IO编程的开发包;
●java.applet包:进行Applet程序的开发包,Applet程序是从1995年开始的,java最主要的技术,不过现在几乎所有的浏览器都不支持了;
●java.awt(重量级组件包,离不开Windows平台)、javax.swing(真正用java写的平台):UI开发包,主要进行UI界面的编写;
|-Java 2(最主要的支持就是javax.swing包);