一个关于Packege的测试
Package的作用
- 把相同作用的类和接口放在同一个包中方便管理
- 避免命名冲突
- 包限定了访问权限,同一个包中的类拥有其他类的访问权限,不同包中的类没有访问权限,只能通过import导入包来获得访问权限。
测试目的:如果声明了Package,但是类不放在声明的Package中会怎么样?
测试开始:
编写源程序
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
}
这时的文件结构是:
src
Hello.java
Hello.class
在源程序中添加包
package Hello; public class Hello{ public static void main(String[] args){ System.out.println("Hello World!"); } }
编译执行,这里使用-d选项,如果不用-d,直接编译然后新建文件夹把对应的class文件放进去也是一样的
javac -d C:\Users\Junw\Desktop\我的源码\JavaSE\Hello\src Hello.java
执行
java Hello/Hello
注意斜杠不要写反了
这是文件结构是
src
Hello.java
Hello
Hello.class
修改存放class文件夹名,模拟包名和文件夹名不一样的场景
再次运行
报错
错误: 找不到或无法加载主类 Hello.Hello
结论:类中声明的包名必须和存放class文件的文件夹名称一样
浙公网安备 33010602011771号