在一个目录下两个类的名字不能相同,为了避免出错,我们可以通过package、import、classpath、jar等机制配合使用,可以跨目录放置和调用Java类
package(包)
- package包和c++中namespace类似
package cn.edu.sicnu;//包名
public class PackageExample{...}
- 类的全称:包名+类 cn.edu.sicnu.PackageExample
短名称:类名 PackageExample
引用类时,必须采用全称引用;程序正文可以用短名称 - PackageExample.java必须严格放置在cn/edu/sicnu目录下
- 包名尽量唯一,由于域名是唯一的,因此常用域名做包名,域名需要逆序,范围从大到小
import
- 类似include,需要引用什么类直接import 类的全称
package cn.edu.sicnu;
import cn.edu.sicnu.PackageExample;
//也可以采用 import cn.edu.sicnu.*
//如果packageExample和当前类在同一个目录下,可以省略import
- import必须放在package之后,类定义之前
- * 可以引入一个目录下的所有类文件,但并不包括该目录下的子目录文件。但为了避免不同包中的同名类冲突,我们尽量不使用 *
这里注意:不同包里的同名类冲突,无法同时import时,可以在创建对象时使用该类的全名,即包名+类名
jar文件导出和导入
jar文件是一种扩展名为jar的文件,实际上是一组class文件的压缩包,便于可执行文件的传播
jar文件的导出:
https://www.jianshu.com/p/165b0ff151b5
jar文件的导入:
https://blog.csdn.net/Golden_soft/article/details/80952243