Программирование на Java | Модемы | Дипломы по радиотехнике и связи |
Программирование на языке Java
Переменные в интерфейсах
Интерфейсы можно использовать для импорта в различные классы совместно используемых констант. В том случае, когд а вы реализуете в классе какойлибо интерфейс, все имена переменных этого интерфейса будут видимы в классе как константы. Это аналогично использованию файлов-заголовков для задания в С и C констант с помощью директив #define или ключевого слова const в Pascal / Delphi.

Если интерфейс не включает в себя методы, то любой класс, объявляемый реализацией этого интерфейса, может вообще ничего не реализовывать. Для импорта констант в пространство имен клас

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

import java.util.Random;

interface SharedConstants { int NO = 0; int YES = 1; int MAYBE = 2; int LATER = 3;

int SOON = 4;

int NEVER = 5; }

class Question implements SharedConstants { Random rand = new Random(); int ask() {

int prob = (int) (100 * rand.nextDouble()); if (prob < 30) return NO; // 30% else if (prob < 60) return YES; // 30%

else if (prob < 75) return LATER; // 15% else if (prob < 98) return SOON; // 13% else return NEVER; // 2% }

}

class AskMe implements SharedConstants

{ static void answer(int result) { switch(result) { case NO:

System.out.println("No");

break; case YES:

System.out.println("Yes");

break; case MAYBE:

System.out.println("Maybe");

break; case LATER:

System.out.println("Later");

break; case SOON:

System.out.priniln("Soon");

break; case NEVER:

System.out.println("Never");

break;

}

}

public static void main(String args[]) { Question q = new Question(); answer(q.ask()); answer(q.ask()); answer(q.askO); answer(q.ask()); }

}

Обратите внимание на то, что результаты при разных запусках программы отличаются, поскольку в ней используется класс генерации случайных чисел Random пакета java.util. Описание этого пакета приведено в главе 12.

С:\> Java AskMe Later Scon

No Yes

< пред след >
вернуться к содержанию
вернуться к списку источников

перейти на главную страницу