冲突的出现:在多人开发中,很难避免类名的重复,为了解决这样的问题,我们使用包来区分不同开发者的代码。
包 = 目录
包的定义
package
关键字package com.xxx.mmm;
- 带包编译:
javac 命令:( javac 自己决定编译顺序 )
然后我们在当前目录下能看到 com/xxx/mmm 文件夹,里面是我们编译的 *.class 文件javac -d . *.java
- 带包执行
java com.xxx.mmm.Main
包的导入
import
关键字
根据程序需要自动导入com.xxx.mmm包内的类import com.xxx.mmm.*;
- 如果两个包有同名的类,往往我们用类的完整名称来确定使用哪个包的类,包名.类
静态导入
- 包的静态导入相当于将包类的内容写到本类中。
package com.test1;
public class Test{
public String put(){
return "com.test1.Test";
}
}
package com.test2;
import static com.test1.Test.*;
public class Mian{
public static void main(String[] args){
System.out.println(put()); //这里没有实例化Test类一样可以输出
}
}
打包 jar
- 对于一个有大量 *.class 文件的项目,通常将这些文件以压缩结构的形式进行处理,在 Java 中称为 jar 文件。
- 先编译后打包
- jar 命令
jar -cvf xxx.jar com
- 使用 jar 包 ( 需要将 jar 包配置到环境变量中 )
SET CLASSPATH=.;d:/xxx.jar
常用包
- java.lang 这个包在JDK1.1版本后自动导入Java程序中,String、Number、Object等都在这里面。
- java.lang.reflect 反射机制处理包
- java.util 工具类定义
- java.io 输入与输出流操作
- java.net 网络程序开发
- java.sql 数据库编程
- java.awt、javax.swing 图形界面开发包(GUI),awt重量级,swing轻量级
a.sql 数据库编程 - java.awt、javax.swing 图形界面开发包(GUI),awt重量级,swing轻量级