• Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名。使用package来解决名字冲突。

  • 包没有父子关系。java.util和java.util.zip是不同的包,两者没有任何继承关系。

包的作用域

  • 不用publicprotectedprivate修饰的字段和方法就是包作用域。

  • 位于同一个包的类,可以访问包作用域的字段和方法。

编译器如何查找类名

  • 如果是完整类名,就直接根据完整类名查找这个class

  • 如果是简单类名,按下面的顺序依次查找:

    • 查找当前package是否存在这个class
    • 查找import的包是否包含这个class
    • 查找java.lang包是否包含这个class
  • 编译器会自动导入当前package的其他classjava.lang.*

自动导入的是java.lang包,但类似java.lang.reflect这些包仍需要手动导入。

posted @ 2024-07-13 23:26  n1ce2cv  阅读(7)  评论(0编辑  收藏  举报