русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Ключові слова this і super


Дата додавання: 2014-05-29; переглядів: 1049.


Якщо виконання коду відбувається в динамічному контексті, тобто має бути об'єкт, асоційований з ним. У цьому випадку ключове слово this повертає посилання на даний об'єкт:

 

class Test {

public Object getThis () {

return this;

// Перевіримо, куди вказує це посилання

}

public static void main (String s []) {

Test t = new Test ();

System.out.println (t.getThis () == t);

// Порівняння

}

}

 

Тобто всередині методів слово this повертає посилання на об'єкт, у якого цей метод викликаний. Воно необхідне, якщо потрібно передати аргумент, рівний посиланням на даний об'єкт, у який-небудь метод.

Також слово this застосовується в конструкторах для явного виклику в першому рядку іншого конструктора цього ж класу. Там також може застосовуватися й слово super, алі вже для звернення до конструктора батьківського класу.

Інші застосування слова super також пов'язані зі зверненням до батьківського типу об'єкта. Наприклад, воно може знадобитися в разі перевизначення (overriding) батьківського методу.

Перевизначенням називають оголошення методу, сигнатура якого збігається з одним із методів батьківського класу.

 

class Parent {

public int getValue () {

return 5;

}

}

class Child extends Parent {

// Перевизначення методу

public int getValue () {

return 3;

}

public static void main (String s []) {

Child c = new Child ();

// Приклад виклику перевизначеного методу

System.out.println (c.getValue ());

}

}

 

Оскільки ключові слова this і super вимагають наявності асоційованого об'єкту, тобто динамічного контексту, використання їх у статичному контексті заборонено.

 


<== попередня лекція | наступна лекція ==>
Тема 8 Об'єктна модель Java | Ключове слово abstract


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн