Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Интерфейсы

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

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

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

 

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

package java.awt.image;

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

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

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

 


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 {

 





Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 1786; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.