为什么我不必导入我刚刚在我的主类中使用它的类?(JAVA)

nai*_*eid 27 java import class

我目前正在使用Deitel的书籍Java How to Program 8th edition(早期对象版本)学习Java.

我在关于创建类和方法的章节.

但是,我对它提供的示例感到困惑,因为它包含两个独立的.java文件,当其中一个使用另一个的方法时,它没有导入该类.它只是从另一个.java文件创建该类的对象而不先导入它.

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

这是本书中的代码(我删除了大多数注释,以节省输入空间/时间...):. java类:

//GradeBook.java

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

主.java文件:

//GradeBookTest.java

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

我以为我得写

import GradeBook.java;
Run Code Online (Sandbox Code Playgroud)

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

我做了很多谷歌搜索,但没有找到答案.我是编程新手,所以请容忍我的新手问题.

先感谢您.

Har*_*Joy 33

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


JB *_*zet 6

您不必导入与当前类位于同一包中的类.

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

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