IT-Storm

Плохое ПО одного человека — постоянная работа другого

Menu

Статический импорт

Статический импорт

Java поддерживает расширенное использование ключевого слова import. Указав после слова import ключевое слово static, можно импортировать статические члены класса или интерфейса. Статический импорт позволяет ссылаться на статические члены по их простым именам, без дополнительного указания имен классов, что упрощает синтаксис.

// Использование статического импорта для
// помещения методов sqrt() и pow() в область видимости

	import static java.lang.Math.sqrt;
	import static java.lang.Math.pow;

//методы sqrt и pow можно теперь вызывать как:
	sqrt()
	pow()
В Java предусмотрены две общие формы оператора import static.

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

import static пакет.имя_типа.имя_статического_члена;

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

Вторая общая форма оператора статического импорта выглядит следующим образом:

import static пакет.имя_типа.*;

Если предполагается использовать несколько статических методов или полей, определенных в классе, то данная общая форма записи позволяет импортировать все эти члены одновременно. Таким образом, обеспечить непосредственный доступ к методам pow() и sqrt() в предьщущей версии программы (а также к другим статическим членам класса Math) без указания имени класса можно с помощью следующей единственной строки кода:
	import static java.lang.Math.*;
Очевидно, что статический импорт не ограничивается только классом Math и его методами. Так, если требуется сделать непосредственно доступным статическое поле System.out потока стандартного вывода, достаточно ввести в программу следующую строку кода:
	import static java.lang.System.out;
После этого данные можно выводить на консоль, не указывая перед статическим полем out имя его класса System:
	out.println("Импopтиpoвaв System.out, имя out можно использовать непосредственно.");
Если импортируются статические члены класса, то они переносятся в глобальное пространство имен. Вследствие этого увеличивается вероятность конфликтов и непреднамеренного сокрытия имен.
Если статический член используется в программе один или два раза, то импортировать его нет никакого смысла. Кроме того, некоторые имена статических членов (например, System.out) настолько знакомы всем программирующим на Java, что они окажутся менее узнаваемыми, если будут использоваться без имени своего класса.
Статический импорт был добавлен в Java в расчете на программы, в которых постоянно используются определенные статические члены. Следовательно, к статическому импорту следует прибегать осмотрительно, не злоупотребляя им.

Java