[Java] Урок: Анонимные и вложенные классы - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Alowir, Sanoxxx  
[Java] Урок: Анонимные и вложенные классы
DexT3R Дата: Воскресенье, 03.11.2013, 12:45 | Сообщение # 1
(•̪●)=ε/̵͇̿̿/’̿’̿ ̿ ̿̿ ̿ ̿””
Сообщений: 1978
Статус: Offline
В данном уроке мы еще больше приблизимся к пониманию основ ООП. Класс, который находится внутри другого класса, называется вложенным. Для чего это может быть нужно? Вкладывая один класс в другой вы можете показывать отношение агрегации. Например у нас есть компьютер, который состоит из процессора и оперативной памяти:

Код
public class Computer {
     class Processor {
         private boolean isStart = false;

         public void start() {
             isStart = true;
         }

         public void shutdown() {
             isStart = false;
         }

     }

     class RAM {
         private boolean isStart = false;

         public void start() {
             isStart = true;
         }

         public void shutdown() {
             isStart = false;
         }
     }
      
     Processor i5 = new Processor();//экземпляр процессора
     RAM kingstone = new RAM();//экземпляр оперативной памяти
}


Так как компьютер действительно состоит из оперативной памяти и процессора, то оба этих классах находятся внутри класса компьютер, при этом мы создали экземпляры Proccessor и RAM. Для обращения к ним следует использовать точку после имени основного класса:
Код
Computer computer = new Computer();
computer.i5.start();
computer.kingstone.start();


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

Код
new Computer(){
     void superStart(){//новый метод
         this.i5.start();
         this.kingstone.start();
     }
};


НИЧЕГО НЕ ПРОДАЮ В ТЕЛЕГРАММЕ И ВК!!
[WS]Grenhelgets Дата: Понедельник, 01.12.2014, 17:45 | Сообщение # 2
Боец
Статус: Offline
Добавь в скайп nicelse.ws предложение есть.
GlaroX Дата: Четверг, 24.11.2016, 03:05 | Сообщение # 3
Боец
Сообщений: 201
Статус: Offline
Отличный разбор немного изучаю!

  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума