Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
answers_1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
912.38 Кб
Скачать

Область видимости

Функция и класс может быть определена как неявное пространство имён, сложно связанное с видимостью, доступностью и периодом жизни объекта.

Первое, что может появиться в исходном файле Java - это оператор package, который сообщает транслятору, в каком пакете должны определяться содержащиеся в данном файле классы. Пакеты задают набор раздельных пространств имен, в которых хранятся имена классов. Если оператор package не указан, классы попадают в безымянное пространство имен, используемое по умолчанию. Если вы объявляете класс, как принадлежащий определенному пакету, например,

package java.awt.image;

то и исходный код этого класса должен храниться в каталоге java/awt/image.

После оператора package, но до любого определения классов в исходном Java-файле, может присутствовать список операторов import.

import пакет1 [.пакет2].(имякласса|*);

  1. Язык java. Интерфейсы.

http://ru.wikipedia.org/wiki/Java

http://coffeevarka.narod.ru/javatut/chap51.html

Интерфейсы

Высшей степенью абстрактности в Java является интерфейс (interface). Все методы интерфейса абстрактны: описатель abstract даже не требуется. Интерфейс не является классом. Класс может наследовать, или расширять (extends) другой класс или реализовывать (implements) интерфейс. Кроме того, интерфейс может наследовать, или расширять другой интерфейс.

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

Интерфейсы можно передавать методам как параметры, но нельзя создавать объекты их типов.

Маркерные интерфейсы

В Java есть некоторые интерфейсы, которые не содержат методов для реализации, а специальным образом обрабатываются JVM. Это интерфейсы:

  • java.lang.Cloneable

  • java.io.Serializable

  • java.rmi.Remote

С помощью интерфейсов можно частично решить проблему множественного наследования объектов. Интерфейсы - это своего рода неполные классы: у них отсутствуют переменные представителей, а методы интерфейсов не могут содержать тела. Объявление интерфейса совершается с помощью слова interface:

Interface имя_интерфейса {

тип имя_метода1 (тип формальная_переменная1, тип формальная_переменная2...)

...

тип имя_метода2 (тип формальная_переменная1, тип формальная_переменная2...)

тип имя_переменной_типа_final1 = значение;

...

тип имя_переменной_типа_final2 = значение;

}

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

interface myfirstinterface {

final int x = 4;

boolean method1 (int k);

}

Теперь, чтобы использовать интерфейс в нашем классе нужно воспользоваться оператором implements:

class MyFirstApplet extends java.applet.Applet implements myfirstinterface {

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

Аналогично классам и методам существуют встроенные Java-интерфейсы. Характерный пример использования встроенных интерфейсов - обработка событий: нажатие клавиши, кнопки мыши или движение мыши. Обработку событий производят слушатели событий. Для их вызова будем использовать интерфейсы:

class GraphicConvey extends java.applet.Applet implements MouseListener, MouseMotionListener {

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]