辅导课程九
package 和 import语句 lang io System String util Object … … … java lang 为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。 java lang io lang System String util Object … … …
package 和 import语句 package 语句作为 Java 源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。 它的格式为: package pkg1[.pkg2[.pkg3…]]; 包名约定俗成:用单位的Internet域名的倒序.包功能标识。如com.sun.java 没有封装在包中的类称为“裸体类”,很容易导致类名冲突。 Java编译器把包对应于文件系统的目录管理,package语句中,用‘ .’ 来指明包(目录)的层次。 例如使用语句package cn.edu.swu; 则该文件编译后的class文件应该位于. \cn\edu\swu 目录下
package 和 import语句 如果将一个类打包,则使用该类时,必须使用该类的全名,Java编译器才会在找到该类。例如: 可以不需要用import语句直接使用 java.lang 包中的类。 ... ... ... cn.edu.swu.MyClass myClass = new cn.edu.swu.MyClass(); import cn.edu.swu.MyClass; ... ... ... MyClass myClass = new MyClass(); //可以直接使用类名
TestPackage/Dog.java Cat.java package 和 import 总结 如果想将一个类放入包中,在这个类源文件的第一句话写package 必须保证该类的class文件位于正确的目录下 该类的源代码java文件可能会对编译产生影响,应删除或移动到另外的目录,如src\ 其它类如果想访问该类: 写全名 import * (引入包中所有的类) 具体类名 访问位于同一包中的类不需要import 如果要让任意目录下的Java程序( Dog )都能访问到封包类( cn.edu.swu.Cat ), 则该封包类的class文件(Cat.class)的最上层包的父目录(….\TestPackage\)必须位于CLASSPATH中。 执行一个封包类( cn.edu.pku.Dog ),需要写全包名。例如:>java cn.edu.pku.Dog。同时该封包类的class文件(Dog.class)的最上层包的父目录也必须位于CLASSPATH中。 在Eclipse中,每一个项目都有自己的CLASSPATH。这样可以避免使用同一个系统CLASSPATH带来的弊端:多个项目具有相同名字的类所引起的混淆。 TestPackage/Dog.java Cat.java