Исключения должны обрабатываться или внутри метода, или описываться в объявлении после ключевого слова throws. Если метод бросает исключение, а вызывающий метод никак не указывает компилятору метод его обработки, то возникает ошибка компиляции.
Интерфейс – вид абстрактного класса, в котором содержаться только объявления методов, и, возможно, констант. Класс Java может реализовывать несколько интерфейсов. Интерфейс позволяет дополнить описание поведения объекта новыми функциональными возможностями, определяя набор методов, которые должен поддерживать класс. Объявление интерфейса:
[public] interface Имя [extends СписокИнтерфейсов]
Имя должно заканчиваться на –able. Если public – доступен из других пакетов. При объявлении не указывается abstract. Интерфейс может наследовать нескольким интерфейсам. Класс, реализующий интерфейс, должен определить все его методы и методы родительских интерфейсов. Каждое поле интерфейса по умолчанию считается public final static-полем. Инициализация констант – обязательно при объявлении. Каждый метод интерфейса по умолчанию считается public abstract. Остальное – запрещено.
Реализация интерфейса. Указывается с помощью ключевого слова implements. При реализации интерфейса нужно определить все объявленные в нем методы (либо они должны быть определены в суперклассе). В противном случае класс должен быть объявлен абстрактным. При реализации интерфейса спецификатор доступа должен быть не менее открытым, чем в объявлении метода в интерфейсе, то есть public.
23. Понятие Java API. Основные пакеты Java API. Пакет AWT: основные понятия
Application Programming Interface (интерфейс прикладного программирования). Набор классов, сгруппированных в пакеты, разработанных Sun для работы с Java.
Основные пакеты Java API
Из версии JDK 1.0 (составляют ядро API Java):
- java. lang (пакет встроенных классов, не нуждается в импортировании) java. applet (поддерживает работу с апплетами) java. io (библиотека ввода/вывода) java. util (сетевые возможности) java. awt (пакет для создания графического интерфейса пользователя) java. awt. image (работа с изображениями) java. awt. peer (обеспечивает подключение компонентов AWT, зависящих от платформы во время их создания)
Развитие Java API:
- java. awt. event – новая модель обработки событий java. awt. font, java. awt. geom, java. awt. color, java. awt. print – поддержка изображений, 2D-графики. java. beans – поддержка технологии компонентного программирования java. security – системы безопасности java. sql - БД java. util. jar, java. util. zip – для работы с архивами java. rmi – сетевое распределенное программирование
В Java 2 реализованы пакеты классов, расширяющих платформу Java: javax. swing, javax. servlet.
В первой версии Java (JDK 1.0) для поддержки графического интерфейса (GUI) применялся только пакет AWT - Abstract Windowing Toolkit (абстрактный оконный инструментарий). Исходный вариант пакета AWT выполнял свои функции, создавая экземпляры peer-классов (парных классов из пакета java. awt. peer), соответствующие используемой операционной системе. (Например, в программе на Java осуществляется вывод на экран командной кнопки. При загрузке программы в среде Windows интерпретатор Java выполнит это действие, использовав функцию создания новой кнопки этой ОС. Далее объект в программе на Java и соответствующий ему объект в среде Windows будут взаимодействовать, обмениваясь информацией о программных событиях. Это позволит организовать поведение кнопки в среде Windows в соответствии с ожидаемым в программе на Java. Каждый компонент AWT в среде Java при выполнении программы должен быть связан с соответствующим ему объектом (peer-объектом) графического интерфейса пользователя операционной системы. )
В более новых версиях (начиная с JDK 1.1) появился пакет Swing, включающий и расширяющий возможности AWT. Этот пакет содержит гораздо больше компонентов, чем AWT, и позволяет создавать более совершенный интерфейс.
Кроме того, в JDK 1.1 исходный вариант AWT был удален, его место заняла пересмотренная версия пакета, поддерживающая новую модель обработки событий. Теперь компоненты пакета AWT, выполняющие свои функции с помощью peer-объектов, принято называть "тяжелыми" или AWT-компонентами.
Компоненты, которые поставляются в составе пакета javax. swing (многие из них являются потомками компонентов пакета java. awt) и работают без применения peer-объектов базовой операционной системы, принято называть "лёгкими" или Swing-компонентами. Swing-компоненты не реализованы специфическим для платформы кодом, а написаны полностью на Java, то есть платформно-независимы.
Библиотека Swing является частью нового, поставляемого с Java2, набора пакетов - Java Foundation Classes (JFC), который Sun рассматривает как ядра Java2.
24. События в Java: понятие события; модель делегирования событий; блоки прослушивания событий
События в Java – объекты, которые создаются как экземпляры классов событий. Событие создается как результат действия пользователя с компонентами графического интерфейса. Два типа событий: низкоуровневые и семантические. Низкоуровневые события инициируются простыми действиями мыши и клавиатуры. Семантические – специфическими действиями с компонентами интерфейса. Строятся на основе низкоуровневых. Иерархия классов событий:
Object
EventObject
AWTEvent
ActionEvent
ComponentEvent
ContainerEvent
FocusEvent
WindowEvent
AdjustmentEvent
ItemEvent
TextEvent
InputEvent
KeyEvent
MouseEvent
Модель делегирования событий
Начиная с JDK 1.1, Sun реализовала новый метод обмена информацией между ОС, приложением и компонентами интерфейса - модель делегирования событий. Если приложению требуется отреагировать на некоторое событие, оно должно реализовать блок прослушивания события соответствующего типа и зарегистрировать новый блок прослушивания для того компонента, который является источником ожидаемого события. Блок прослушивания – объект, который получает уведомление о событии и должен реализовывать методы для приема и обработки этого события. Методы, принимающие и обрабатывающие события, определены в наборе интерфейсов Listener. Начало имени в xxxListener отражает специфику прослушиваемого события. JVM передает событие, сгенерированное в результате действия пользователя с некоторым компонентом, блоку прослушивания, который зарегистрирован как заинтересованный в событии от данного компонента. Регистрация блока прослушивания – с помощью метода addxxxListener (xxxListener l), где xxxListener – ссылка на объект, который реализует соответствующий интерфейс. Метод определен в классе компонентов AWT. Вызывается на данном компоненте.
Блоки прослушивания событий
Реализуются описанием тела методов, объявленных в соответствующем интерфейсе Listener. Методы определяют действия, которые совершает приложение в ответ на соответствующее событие.
ActionListener – void actionPerformed (ActionEvent e)
AdjustmentListener – void adjustmentValueChange (AdjustmentEvent e)
ItemListener – void itemStateChanged (ItemEvent e)
TextListener – void textValueChange (TextEvent e)
// Object o = e. getSource()
// для ActionEvent – String getActionCommand() – возвращает командную строку
// для AdjustmentEvent – int getValue()
// для ItemEvent – Object getItem()
Два способа реализации блока прослушивания события от компонента:
1. Реализация классом, заинтересованном в событии, соответствующего интерфейса. Экземпляр данного класса регистрируется в качестве блока прослушивания события.
имя_компонента. addxxxListener(xxxListener l). l – может быть this. Если прослушиваются несколько однотипных компонентов, то сначала нужно выяснить, кто именно его отправил.
2. Использование при реализации блока прослушивания анонимных внутренних (вложенных) классов. При регистрации блока прослушивания создается новый объект блока прослушивания – экземпляр анонимного внутреннего класса.
имя_компонента. addxxxListener (new xxxListener ()
{ public void имя_метода (xxxEvent e)
{тело метода}
}
Имя файла класса после компиляции – имя_внешнего_класса$1.class
Классы-адаптеры позволяют упростить создание обработчиков событий. Они обеспечивают пустую реализацию всех методов в интерфейсе прослушивания событий. Примеры классов-адаптеров:
· ComponentAdapter
· ContainerAdapter
· FocusAdapter
· KeyAdapter
· MouseAdapter
· MouseMotionAdapter
· WindowAdapter
25. Исключения в Java: понятие исключения; организация обработки исключений
Обработка исключений – эффективный механизм повышения надежности программ. Используется для устранения ошибок, источник которых находится вне программы. Исключение – объект, который создается JVM вследствие нарушения выполнения программы. При возникновении ошибки происходит бросок исключения, и выполнение потока команд прерывается. Также исключение может выбрасываться методом throw по инициативе программы.
Throwable
Error
NoSuchMethodError
VirtualMachineError
Exception
IOException
RuntimeException
ArithmeticException
NullPointerException
Методы Throwable: getMessage(), toString(), printStackTrace().
Error – серьезные нештатные ситуации, которые не следует обрабатывать в прикладных программах.
Если в приложении используется метод, выбрасывающий исключение, то оно должно быть либо обработано, либо явно указано в объявлении метода. Рекомендуется обрабатывать исключения RuntimeException, иначе используются обработчики по умолчанию.
Используются следующие операторы:
throw – выброс исключения. throw new Exception (“Ошибка:…”); try определяет программный блок, в котором могут возникнуть исключения. Эти блоки могут быть вложенными. catch определяет перехватываемое исключение и методы по его обработке. используется сразу после блока try. Может быть несколько catch после одного try (для обработки разных типов исключений). finally определяет программный блок, который выполняется независимо от того, было выброшено исключение или нет (например, для закрытия потоков данных). throws – указывает в объявлении метода, что он выбрасывает исключение.Допустимый синтаксис:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


