#java #language-features
#java #особенности языка
Вопрос:
В этой статье больше не говорится о Typedefs, Defines или препроцессоре в 2.2.1 . В C include
является частью препроцессора. Что такое import
?
Комментарии:
1. Стоит отметить, что более похожим ключевым словом в C является
using
.2. @Bringer128
using
является частью C #, а не C . В C / C это слово —#include "..."
илиinclude <...>
🙂3. Я имел в виду это ключевое слово
Ответ №1:
Импорт, несмотря на название, ничего не «импортирует», он просто позволяет вам вызывать классы без полного имени.
Чтобы уточнить, если я выполняю import java.util.ArrayList;
, теперь я могу ссылаться на ArrayList
class как просто ArrayList
. Если я этого не сделаю, я все равно смогу использовать класс, мне просто нужно его вызвать java.util.ArrayList
.
Если вы импортируете целые пакеты с помощью *
, худшее, что может случиться, это конфликт имен, поэтому вам придется использовать полное имя для ссылки на класс Java, но он не использует больше памяти во время выполнения.
Классы в java.lang
автоматически «импортируются».
В Java 1.5 введен статический импорт, который позволяет программистам ссылаться на импортированные статические элементы так, как если бы они были объявлены в использующем их классе. Их следует использовать экономно. Приемлемым использованием является импорт методов JUnit Assert. Например, при традиционном импорте:
import org.junit.Assert;
...
Assert.assertEquals(expected, actual);
При статическом импорте:
import static org.junit.Assert.assertEquals;
...
assertEquals(expected, actual);
Ответ №2:
Импорт позволяет использовать неквалифицированное имя класса. Например, с помощью import java.util.ArrayList
вы можете использовать в своем коде неквалифицированное имя типа ArrayList
. Без инструкции import вам пришлось бы всегда использовать полное имя: java.util.ArrayList
.
Существует также статический импорт, который переносит элементы статического класса в пространство имен модуля компиляции.
Ответ №3:
import
делает имена пакетов известными в файле, где они используются. Это совсем не сравнимо с C #inlclude
.
Ответ №4:
Из-за жесткого соглашения об именовании исходного кода компилятор Java может легко найти соответствующие файлы исходного кода или класса просто по полному имени пакета и класса. Под полным именем я подразумеваю указание полного пакета и класса, например
java.util.ArrayList x = new java.util.ArrayList ();
Альтернативой этому многословному стилю кодирования является использование инструкций import.
import java.io.*;
import java.util.ArrayList;
ArrayList x = new java.util.ArrayList();
Также это отличная помощь в понимании чужого кода
Ответ №5:
Способ сообщить компилятору, что вы используете какой-то класс из другого пакета?
РЕДАКТИРОВАТЬ: ссылка на спецификацию