- 所有的java类都是放置在同一个目录下面的,因此类之间相互调用无需显式声明调用
同一个目录下,两个类名字不能相同
文件过多,查找和修改都不易,且容易出错 - Java支持多目录放置Java,并通过package/import/classpath/jar等机制配合使用,支持跨目录放置和调用Java类
package
和C++中的namespace类死,
Java类文件的第一句话给出包的名称
引用类的时候,必须采用全程引用;程序正文可以用短名称
包名尽量唯一
因为域名是唯一的,因此常用域名做包名
域名逆序,范围从大到小
类的完整名字:包名+类名
包名:和目录层次一样
package can.edu.ecnu
import cn.edu.ecru.PackageExample
//不能用import cn.*
public class PackageExampleTest{
public static void main(String[] arts){
PackageExample obj = new PackageExample();//可以用短名称,因为是在程序正文
}
}
import
import必须全部放在package之后,类定义之前
import顺序无关
*可以引入一个目录下所有类,但不包括目录类中的文件,即不能递归包含各个目录下的文件
import尽量精确,不推荐用,以免报错
2.jar文件导出和导入
jar文件是Java所同特有的一种文件格式,用于可执行程序文件的传播
jar文件实际上是一组class文件的压缩包
jar文件本质上和C++里的DLL类似
jar文件的优势
- jar文件可以包括多个calss,比多层目录更加简洁实用
- jar文件经过压缩只有一个文件,方便下载和传播
- jar文件只包括class,可以更好的保护源文件
- 将多个class文件压缩成jar文件(只有一个文件),一个规定一个版本好以更好的进行版本控制
在命令行中,必须依靠classpath来指引所需要的类
编译需要文件的全路径,运行需要类的完整名字
Java访问权限
Java访问权限有四种:
private:只能本类访问
default(通常忽略不写):同一个包内访问
protected:子类均可访问
public:所有类都可以访问
使用范围:
四种都可以用来修饰成员变量、成员方法、构造函数
defaul和public可以修饰类