为什么我不必导入我刚刚创建的类以在我的主类中使用它?(爪哇)

2022-09-01 07:29:18

我目前正在使用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!" );
    }
}

主.java文件:

//GradeBookTest.java

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

我以为我必须写

import GradeBook.java;

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

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

提前感谢您。


答案 1

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


答案 2

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

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

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