Помимо импорта статических членов классов и интерфейсов, определенных в прикладном программном интерфейсе (API) языка Java, Вы можете использовать это средство для импорта статических членов классов и интерфейсов, созданных Вами. Рассмотрим класс Msg, приведенный в листинге 8.3. Обратите внимание на то, что он содержится в пакете, названном MyMsg.
Листинг 8.З. Статический импорт членов созданного Вами класса
package MyMsg;
public class Msg {
public static final int UPPER = 1;
public static final int LOWER = 2;
public static final int MIXED = 3;
private String msg;
// Display a message in the specified case.
public void showMsg(int how) {
String str;
switch(how) {
case UPPER:
str = msg.toUpperCase();
break;
case LOWER:
str = msg.toLowerCase();
break;
case MIXED:
str = msg;
break;
default:
System.out.println("Invalid command.");
return;
}
System.out.println(str);
}
public Msg(String s) { msg = s; }
}
В классе Msg инкапсулирована строка, которая может выводиться на экран в первоначальном виде (содержит как заглавные, так и строчные буквы), в верхнем регистре (только заглавные буквы) или в нижнем регистре (только строчные буквы) в зависимости от значения, переданного в метод showMsg(). Значения, определяющие, какой регистр используется,— это целочисленные поля, описанные с модификаторами static final и названные UPPER, LOWER и MIXED. Обычно эти члены должны уточняться с помощью имени класса, например Msg.UPPER. Предположим, что объект класса Msg назван m, для вывода строки в нижнем регистре пришлось бы вызывать метод showMsg(), как показано в следующей строке:
m.showMsg(Msg.LOWER);
Но если Вы статически импортируете эти значения, то сможете непосредственно использовать их имена следующим образом:
m.showMsg(LOWER);
В листинге 8.4 показан процесс импорта статических членов класса MyMsg.Msg и в дальнейшем использование констант UPPER, LOWER И MIXED без уточнения их имен.
Листинг 8.4. Статический импорт статических полей, определенных пользователем
import MyMsg.*;
import static MyMsg.Msg.*;
class Test {
public static void main(String args[]) {
Msg m = new Msg("Testing static import.");
m.showMsg(MIXED);
m.showMsg(LOWER);
m.showMsg(UPPER);
}
}
|