[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
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
Akery [03:16]

Securityzle [00:49]

smartservicerecruit [21:41]

pashafedlyuk [21:32]

Nauk555 [21:21]

Nauk999 [21:05]

siege [17:30]

CryptoRiched [00:42]

FANNEIL123 [08:17]

fanneil100 [07:56]

wyir [23:05]

morgenshtern2195 [22:41]

gdhhdhdjdjdjdjd [19:03]