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

Значение оператора import в файле Java

Может ли кто-нибудь четко объяснить мне, что именно происходит, когда мы используем оператор import в файлах Java? Увеличивает ли размер файла, добавляя все больше классов java? Почему мы не используем загрузчик классов для того же самого? И каковы ограничения на импорт?

4b9b3361

Ответ 1

import объявления (не операторы) - это, по сути, краткосрочный механизм на уровне исходного кода: он позволяет ссылаться на элемент типа или static, используя один идентификатор (например, List, min) в отличие от полного имени (например, java.util.List, Math.min).

import раздел декларации является элементом времени компиляции исходных кодов и не имеет присутствия во время выполнения. В байт-кодах JVM имена типов всегда полностью квалифицированы, и если вы не используете плохо написанный компилятор, двоичный файл должен содержать только имена для используемых типов.

Погрузчики классов используются для совершенно иной концепции и не имеют ничего общего с функцией import.

JLS 7.5 Импорт объявлений

Объявление импорта позволяет использовать элемент static или именованный тип простым именем, состоящим из одного идентификатора. Без использования соответствующего объявления import единственный способ ссылаться на тип, объявленный в другом пакете, или член static другого типа - использовать полное имя.

В объявлении однотипного импорта импортируется один и тот же тип, указывая его каноническое имя.

Объявление типа импорта по требованию импортирует все доступные типы именованного типа или пакета по мере необходимости. Это ошибка времени компиляции для импорта типа из неназванного пакета.

Одно статическое объявление импорта импортирует все доступные статические члены с заданным именем из типа, указывая его каноническое имя.

Объявление static-import-on-demand импортирует все доступные статические члены именованного типа по мере необходимости.

Ссылки

См. также


Различные import связанные вопросы

О грамматической роли import:

В режиме on-demand vs single-type:

Вкл import static:

Проблемы, связанные с производительностью:

Ответ 2

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

Например, если вам нужен AraryList в вашем коде, вы используете оператор import import java.util.ArrayList; вместо того, чтобы вводить полное имя класса во все места, где вам нужен Arraylist.

Более подробную информацию см. в JLS.

Ответ 3

Импорт в java - это только подсказки для компилятора. Это не влияет на размер файла двоичного класса вообще. Вы можете использовать импорт один раз или написать полное имя класса каждый раз, когда вы его используете.

Импорт - это просто уступка читаемости и лени разработчика.

Ответ 4

Операторы

import говорят компилятору: если у вас есть функция, которая не может быть найдена в этом классе, посмотрите в список импорта.

Таким образом, вы можете ссылаться на функции в других пакетах без необходимости копировать определение (например, файлы C (++).h) в собственный пакет.

Ответ 5

Оператор импорта в Java позволяет ссылаться на классы, которые объявляются в других пакетах, к которым можно получить доступ, не ссылаясь на полное имя пакета. Вам не нужна инструкция импорта, если вы хотите всегда ссылаться на java.util.List по его полному имени и т.д. Для всех других классов. Но если вы хотите ссылаться на него как на List, вам нужно его импортировать, чтобы компилятор знал, к какому списку вы обращаетесь.

Классы из пакета java.lang автоматически импортируются, поэтому вам не нужно явно это делать, например, ссылаться на String.

Подробнее: http://wiki.answers.com/Q/Why_import_statement_is_needed_in_Java_program#ixzz1zDh2ZBhE