一个关于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文件的文件夹名称一样

posted on 2021-10-18 11:59  小白成长变大神  阅读(71)  评论(0)    收藏  举报