same - java импорт класса из другого пакета




Почему мне не нужно импортировать класс, который я только что создал, чтобы использовать его в моем основном классе?(Джава) (6)

Java не использует включает в себя, как C делает. Вместо этого Java использует концепцию, называемую classpath, список ресурсов, содержащих классы Java. JVM может получить доступ к любому классу на пути к классам по имени, так что если вы можете расширять классы и ссылаться на типы, просто объявив их.

From: включить один файл Java в другой файл Java

В настоящее время я изучаю Java, используя книгу Дейтеля «Как программировать, 8-е издание» (ранняя версия объектов).

Я нахожусь на главе о создании классов и методов.

Однако, я был действительно смущен приведенным здесь примером, потому что он состоит из двух отдельных файлов .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 и его методы, и как он узнает, существует ли он вообще, если мы не импортируем этот класс?

Я много гуглил, но ответа не нашел. Я новичок в программировании, поэтому, пожалуйста, терпите мой вопрос новичка.

Заранее спасибо.


Вам не нужно импортировать классы, которые находятся в одном пакете.


Импорт предназначен для импорта классов, которые находятся в другом пакете. Поскольку вы не объявили пакет ни для одного из них, они оба помещаются в пакет по умолчанию. Компилятор может найти его, потому что класс находится в том же каталоге.


Классы, находящиеся в одном пакете, не нужно импортировать, так как они видны друг другу. Вы просто import класс из другого пакета:

import java.util.ArrayList;

Обратите внимание, что вы импортируете не файл, а класс.







import