2013-02-10 2 views
1

Я не получаю внутренние классы. В чем причина использования внутренних классов в Java? Можете ли вы дать мне хороший пример статических и нестатических вложенных классов? Каковы его преимущества/недостатки? Cheersпричины для внутренних занятий

+3

Ознакомьтесь с учебниками по Java: http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html –

+0

http://docs.oracle.com/javase/tutorial/java/javaOO/nested .html –

+0

См. также http://stackoverflow.com/questions/35027314/nested-clas SES-против-раздельным класса-файлов – Raedwald

ответ

2

Анонимные внутренние классы полезны для определения одноразовых классов с очень небольшим количеством методов, например, при реализации прослушивателя событий или компаратора. В этих случаях полномасштабный класс будет излишним, учитывая, что он не будет использоваться где-либо еще.

Вот простой пример сравнения для списка строк, реализованного как анонимный внутренний класс:

Collections.sort(myArrayList, new Comparator() { 
    public int compare(Object a, Object b) { 
     return ((String) a).compareToIgnoreCase((String) b); 
    } 
}); 

Или, если myArrayList случается общий список, это то, как он будет выглядеть следующим образом:

Collections.sort(myArrayList, new Comparator<String>() { 
    @Override 
    public int compare(String a, String b) { 
     return a.compareToIgnoreCase(b); 
    } 
}); 
Смежные вопросы