Внутренний класс KeyAdapter Что именно здесь делает Java?

Когда мне нужно получить ввод с клавиатуры, я использую следующую технику внутреннего класса KeyAdapter.

controls = new KeyAdapter()
   {
       public void keyPressed(KeyEvent e)
          {
              //do something with input
          }
   };

Не недавно я научился это делать, но я начинаю чувствовать себя некомфортно, так как мне нравится понимать, что происходит в моем коде. Что именно здесь делает Java? Лучшее, что я могу придумать, - это форма внутреннего класса, но почему я не могу написать конструктор?


person Community    schedule 25.05.2013    source источник
comment
Найдите класс Java анонимный и прочтите Тропа анонимных классов. Знание имени очень помогает. Также связан блок инициализации или инициализация двойной скобки, который можно использовать для имитации (fsvo) конструктор здесь. Последний вопрос является наиболее интересным (т.е. он не объясняется тривиально в обучающих материалах), но он похоронен: почему анонимные классы не могут иметь конструктор?   -  person user2246674    schedule 26.05.2013
comment
проверьте эту проблему: stackoverflow.com / questions / 5107158 /   -  person Deividi Cavarzan    schedule 26.05.2013
comment
И даже почему у анонимных классов не может быть конструктора? уже ответил. Немного чтения / исследования может иметь большое значение.   -  person user2246674    schedule 26.05.2013
comment
См. Также этот Q&A в шаблон нулевой реализации.   -  person trashgod    schedule 26.05.2013