为什么我不需要导入我刚才在我的主课堂中使用的课程?(JAVA)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我目前正在使用Deitel的书Java How to Program 8th edition(early objects version)学习Java。

我在创建类和方法的章节。

但是,由于它由两个单独的.java文件组成,并且当其中一个使用另一个方法的方法时,我非常困惑,因为它没有导入类。它只是从另一个.java文件创建该类的对象,而不先导入它。

这是如何运作的?为什么我不需要导入它?

这里是本书的代码(我删除了大多数评论,以节省打字空间/时间...):.java class:

//GradeBook.java

public class GradeBook
{
    public void displayMessage()
    {
        System.out.printf( "Welcome to the grade book!" );
    }
}

主要的.java文件:

//GradeBookTest.java

public class GradeBookTest
{
    public static void main( String[] args)
    {
        GradeBook myGradeBook = new GradeBook();
        myGradeBook.displayMessage(); 
    }
}

我以为我必须写

import GradeBook.java;

或类似的东西。编译器如何知道GradeBook类及其方法在哪里找到,以及如何知道它是否存在,如果我们不导入该类?

提问于
用户回答回答于

这是因为两者都在同一个包(文件夹)中。它们被自动导入,无需为此写入导入语句。

用户回答回答于

您不必导入与当前类相同的包中的类。

另请注意,GradeBook.java是文件的名称。该类的(简单)名称是GradeBook。每个班级都应该包装在一起。如果它位于com.foo.bar包中,那么类名称为com.foo.bar.GradeBook,这是导入此类时必须使用的名称。

阅读http://download.oracle.com/javase/tutorial/java/package/packages.html以了解有关软件包的更多信息。

扫码关注云+社区