Техникалық құралдар, материалдар
|
Тақырып бойынша слайд-шоу;
Білімді тексеруге арналған тесттер;
Бейнематериалдар;
Дербес компьютер:
|
5. Сабақтың барысы
|
Ұйымдастыру кезеңі
|
Сәлемдесу, жоқ студенттерді белгілеу, сабаққа назар аудару
|
Үй тапсырмасын тексеру
|
Javascript бағдарламасының функцияларын біліп, меңгерген. Бағдарламада main әдісімен жұмыс жасалды.
|
Жаңа тақырыпты түсіндіру
|
Жоспар:
Статикалық әдістер
Статикалық өрістер
|
Сабақ бойынша бағалау-өлшеу материалдары, бағалау парақтары, жұмыс дәптері
|
.
|
6. Үйге тапсырма
|
Статикалық әдістер тақырыбына глоссарий жасау.
|
Педагог
|
Темірғали Дәмелі Абайқызы
Т.А.Ә.
__________
(қолы)
|
ЖҰМЫС ДӘПТЕРІ №36
Тақырыбы: Мұрагерлік иерархиясы және түрлендіру. Интерфейстер. Қайта шақыру механизміндегі интерфейстер.
Java тіліндегі интерфейстерді пайдаланудың кең таралған әдістерінің бірі кері қоңырауды жасау болып табылады. Кері шақырудың мәні мынада: біз басқа әрекеттермен шақырылатын әрекеттерді жасаймыз. Яғни бір әрекет екінші әрекетпен аталады. Стандартты мысал - түймені басу. Түймені басқан кезде біз әрекет жасаймыз, бірақ осы шертуге жауап ретінде басқа әрекеттер іске қосылады. Мысалы, принтер белгішесін басу құжатты принтерде басып шығаруды бастайды және т.б.
Келесі мысалды қарастырыңыз:
public class EventsApp {
public static void main(String[] args) {
Button button = new Button(new ButtonClickHandler());
button.click();
button.click();
button.click();
}
}
class ButtonClickHandler implements EventHandler{
public void execute(){
System.out.println("Кнопка нажата!");
}
}
interface EventHandler{
void execute();
}
class Button{
EventHandler handler;
Button(EventHandler action){
this.handler=action;
}
public void click(){
handler.execute();
}
}
Сонымен, мұнда конструкторда EventHandler интерфейсінің объектісін қабылдайтын және басу әдісінде (басуға еліктеу) осы нысанның орындау әдісін шақыратын Button класы анықталған.
Содан кейін EventHandler іске асыру ButtonClickHandler сыныбы ретінде анықталады. Ал негізгі программада осы класстың объектісі Button конструкторына беріледі. Осылайша, конструктор арқылы біз түймені басу өңдеушісін орнаттық. Және button.click() әдісі шақырылған сайын бұл өңдеуші шақырылады.
Нәтижесінде бағдарлама консольде келесі нәтижені көрсетеді:
Бірақ неге біз барлық әрекеттерді интерфейске қоюымыз керек, оны жүзеге асыруымыз керек, неге бірден Button сыныбында оңай жазбасқа:
class Button{
public void click(){
System.out.println("Кнопка нажата!");
}
}
Шындығында, сыныпты анықтау кезінде біз әрқашан нақты орындалатын әрекеттерді біле бермейміз. Әсіресе, Button класы мен негізгі бағдарлама класы әртүрлі бумаларда, кітапханаларда болса және оларды әртүрлі әзірлеушілер құрастыра алады. Сонымен қатар, бізде бірнеше түймелер болуы мүмкін - Button нысандары және әрбір нысан үшін біз өз әрекетімізді анықтауымыз керек. Мысалы, бағдарламаның негізгі класын өзгертейік:
public class EventsApp {
public static void main(String[] args) {
Button tvButton = new Button(new EventHandler(){
private boolean on = false;
public void execute(){
if(on) {
System.out.println("Телевизор выключен..");
on=false;
}
else {
System.out.println("Телевизор включен!");
on=true;
}
}
});
Button printButton = new Button(new EventHandler(){
public void execute(){
System.out.println("Запущена печать на принтере...");
}
});
tvButton.click();
printButton.click();
tvButton.click();
}
}
Мұнда бізде екі түйме бар - біреуі теледидарды қосу және өшіру үшін, екіншісі принтерде басып шығару үшін. EventHandler интерфейсін жүзеге асыратын бөлек сыныптарды жасаудың орнына, өңдеушілер EventHandler интерфейсін жүзеге асыратын анонимді нысандар ретінде анықталады. Сонымен қатар, теледидар түймелерінің өңдеушісі қосымша күйді логикалық айнымалы түрінде сақтайды.
Нәтижесінде консоль келесі нәтижені көрсетеді:
Қорытындылай келе, бұл сыйымдылықтағы интерфейстер әртүрлі графикалық API-де - AWT, Swing, JavaFX-де кеңінен қолданылады, мұнда объектілерді оқиғаларды өңдеу - графикалық интерфейс элементтері ерекше өзекті болып табылады.
Достарыңызбен бөлісу: |