自动导入哪些Java类/包?

时间:2018-12-19 13:33:52

标签: java class package

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); 
    }
}

在上面的示例中,我们使用的是println方法,而不导入其程序包。所以我想知道:自动包含哪些程序包或类?

3 个答案:

答案 0 :(得分:6)

java.lang中的

所有内容是默认导入的-在这里您使用的是java.lang.Systemjava.lang.String

答案 1 :(得分:2)

默认情况下有两个导入的软件包:

  • java.lang
  • 当前类所在的包(在上面的代码中,表面上是默认包,您不能从其他包中显式导入)。

来自language spec

  

编译单元中的代码自动访问其包中声明的所有类型,并且还自动导入在预定义包java.lang中声明的所有公共类型。

因此,您只能访问java.lang中的 public 类型,但是可以访问当前程序包中的所有顶级类型。

但是重要的是要注意,尽管有Java包的外观,但它们并不是分层的,因此这意味着由于java.lang.reflect的导入,java.lang也不会自动导入。

答案 2 :(得分:-1)

在每个Java类中,默认情况下都会导入java.lang

您正在上课的该程序包的一部分(即该程序包的 非私有 类)也是可用/可见的,除非您的班级在 默认包 中,除非您的班级没有包定义。除非 >