Подтвердить что ты не робот

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

В настоящее время я изучаю Java, используя книгу Deitel 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 и его методы, и как он узнает, существует ли он вообще, если мы не импортируем этот класс?

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

Спасибо заранее.

4b9b3361

Ответ 1

Это потому, что оба находятся в одном пакете (папке). Они автоматически импортируются без необходимости писать инструкцию импорта для этого.

Ответ 2

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

Также обратите внимание, что GradeBook.java - это имя файла. (Простое) название класса - GradeBook. Каждый класс должен быть в пакете. Если он находится в пакете com.foo.bar, имя класса - com.foo.bar.GradeBook, и это имя, которое вы должны использовать при импорте этого класса.

Прочтите http://download.oracle.com/javase/tutorial/java/package/packages.html, чтобы узнать больше о пакетах.

Ответ 3

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

import java.util.ArrayList;

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

Ответ 5

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

От: Включить один java файл в другой файл java

Ответ 6

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

Ответ 7

Ну, классы в том же пакете автоматически импортируются.

Ответ 8

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

Ответ 9

Они находятся в одном пакете. Этот tutorial будет делать больше справедливости, чем я.