1.编译运行含有包层的类
- java中,为了确保类名的唯一性,以及方便组织自己的代码,引入了包package。
- package语句必须放在程序代码的第一行,除注释之外。
- 在某一程序代码的首行,如果没有package语句,代码仍然可以编译,编译后的class文件被存放在默认包中,即与java文件同目录。
- 《JAVA编程思想》中这样写到:“Java将这样的文件自动看作是隶属于该目录的默认包之中,于是它们为该目录的其他文件都提供了包访问权限。”即该默认包中的其他文件是可以访问这些文件(“这样的文件”)的。
- 提供一个例子,如何编译和运行含有包层的类:
package com.access;
class PrintString
{
void print()
{
System.out.println("Hello World!");
}
}
public class TestPackage
{
public static void main(String[] args)
{
PrintString ps = new PrintString();
ps.print();
}
}
- 编译:
javac -d . TestPackage.java
其中:-d表示自动生成包层 . 表示这个包层是在当前目录下建立。 - 运行:
java com.access.TestPackage
- 输出:
Hello World!
注意:
(1)package com.access; 表示把该文件的所有的类放入com.access这个包中,并且该文件所有类的真正名字将是包名和类名的组合。例如,类TestPackage 的名字将编程com.access.TestPackage ,而不再是TestPackage 。
(2)编译时建议使用:javac -d . TestPackage.java 尽量不要使用javac TestPackage.java 因为后者要手动的建立包目录。
(3)如果不再当前路径下运行程序,则必须保证class文件的最上层目录的父目录位于classpath下。例如:包的父目录是D:\JavaProject\demo12。现在要在C:\Users\Administrator目录下运行TestPackage。实现步骤如下:
(1)设置环境变量:C:\Users\Administrator> set classpath=d:\JavaProject\demo12;
注意:classpath=d:\JavaProject\demo12这部分没有空格。
(2)运行:C:\Users\Administrator> java com.access.TestPackage
- 注意:
(a)classpath:设置的是可运行的class文件的路径。在任何路径下都可以导入包中的类,此时就需要设置classpath,
classpath:即设置的导入的类的路径
(b