русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Интерфейсы


Дата добавления: 2015-06-12; просмотров: 478; Нарушение авторских прав


 

Большинство классов определяют мет оды, которые реагируют на различныедействия,например , отвечунанажатиекнопки , отвечуна движение мыши , и так далее. Набор таких действий называется

 

поведениемкласса .

 

Интерфейсы – это специальные конструкции, которые только объявляют набор определенных действий без кода, который описывает,чтоименнонадоделать вобъявленныхметодах ,например:

 

interfaceMouseMotionListener {

 

voidmouseDragged(MouseEvent e);voidmouseMoved(MouseEvent e);

 

}

 

Как вид ите, методы mouseDragged() и mouseMoved() не содержат никакого текста программ – эти методы просто объявлены в интерфейсе, называемом MouseMotionListener. А вот если ваш класс должен реагировать на движение указателя мыши или на перетаскивание мышью, то тогда он должен реализовать этот интерфейс.

 

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


Прогрнаммирование Java длядетей,родителей,бабушекдедушек  
   
     
importjava.awt.event.MouseMotionListener;  
class MyDrawingPad implements MouseMotionListener{  
  //здесь можетидти текстпрограммы,которая  
// выполняетфункцииграфредактческогора    
mouseDragged(MouseEvent e){    
  // здесьбудет   текстпрограммы,когда    
  //мышьчто   -топеретаскивает    
  }            
  mouseMoved(MouseEvent e){    
  // сюидает   текстпрограммы,когда двигается  
  //мышьпросто   будетздесь  
} }            

Должно быть, вам интересно, зачем беспокоиться о создании интерфейсов без текста программы? Причина в том, что интерфейс,



сделанный однажды, может и спользоваться во многих классах.  
Например, к огда другие классы (или сама виртуальная машина JVM)  
MouseMotionListener   реализует интерфейс  
видят, что класс MyDrawingPad  
      mouseMoved().    
методы mouseDragged(),они знают, что в этом классе точно есть  
  и      

Каждый раз,когдапользовательдв игаетмышкой, JVM вызываетметод mouseMoved() и исполняет текст программы, который вы там написали. Представьте, что если Иван решит назвать этот метод mouseMoved(), Маша назовет его movedMouse(), а Петя предпочтет mouseCrawling()? Тогда JVM запутается и не будет знать, какой же методвашегоклассавызвать,чтобыс ообщитьодвижениимыши.

 

Класс Java может реализовывать много интерфейсов, например , он можетреагироватьнадвижениямышиинанажатиекнопки:

 

classmyDrawingProgramimplementsMouseMotionListener,

 

    ActionListener {  
//Здесьвыдолжнынаписатекспрограммытдляь обьявленного в обoих интерфейсax  
//каждогометода  

 

}

 

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


ПрогрнаммированиеJava длядетей,родителей,бабушекдедушек
   
     
Слушатель поимени ActionListener  
     

Давайтевернемсякнашемукалькулятору.Есливысделализаданияк предыдущей главе, визуальная часть программы готова. Теперь мы создадим еще один класс слушатель, который будет что то делать, когдапользовательбудетнажиматьнаоднуизкнопок.Вообще то,мы могли бы добавить текст программы, обрабатывающий события нажатиянакнопку,ср азувкласс Calculator.java, но лучшенесмешивать водномклассе визуальнуюиобрабатывающуючасти.

 

Назовем второй класс CalculatorEngine, и скажем, что он должен реализовать интерфейс java.awt.ActionListener в котором объявлен толь ко один метод actionPerformed(ActionEvent).

 

JVM вызываетэто т методвклассе,которыйреализуетэтотинтерфейс каждыйраз,когдакто тонажимаетнакнопку.

 

Посмотримна этотпростойкласс:

 

importjava.awt.event.ActionListener;

 

public classCalculatorEngineimplementsActionListener {

 

}

 

Есливыпопытаетесь его скомпилировать (илипростосохр анитьегов Eclipse), то возникнет сообщение о б ошибке, что, мол, класс должен реализовать метод actionPerformed(ActionEvent e). Давайте исправимэтуошибку:

 

importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;

 

public classCalculatorEngineimplementsActionListener {

 

public voidactionPerformed(ActionEvent e){

 

// Еслиэ тотметодможно   оставитьпустым, ничнего    
// произойдет, когда JVM вызоветего        
}              
}              
message box)   actionPerformed() окно сообщения (a  
Следующая версия этого класса будет открывать        
JOptionPane из метода   showConfirmDialog()    
метода   . С помощью класса  
  и его   .   можно  
показывать пользователю любые сообщения Например, класс  
CalculatorEngine можетвыдать следующее:        

 



<== предыдущая лекция | следующая лекция ==>
Практическиеупражнениядляумниковумниц | Как правильно выбрать процессор? Критерии выбора и руководство пользователя для всех и вся


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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