2015-03-18 3 views
0

Читая java Doc, я получил следующие вещи.Внутренние классы и приложения в java?

  1. Внутренний класс C является прямым внутренним классом класса О, если О является непосредственно лексический ограждающим класс C и декларация C не происходит в статическом контексте

Так что, если я напишите

public class O{ 
    class Inner1{ 
     // 
    } 
    class Inner2{ 

    } 
} 

Мой вопрос из этих двух внутренних классов, который является прямым Внутренним классом O?

И есть также некоторые моменты, которые я получил там.

2.А класса О является n-й лексический ограждающим класса класса C, если это непосредственно охватывающий класс н-1'th лексический охватывающим класс C.

3.An экземпляра я прямого внутреннего класса C класса O ассоциируется с экземпляром O, известным как непосредственно охватывающий экземпляр i. При создании объекта определяется сразу же экземпляр объекта, если он есть.

4. Объектом o является нулевой лексически охватывающий экземпляр самого себя.

5. Объектом o является n-й лексически охватывающий экземпляр экземпляра i, если он является непосредственным экземпляром n-1'-лексически охватывающего экземпляра i.

6. Экземпляр внутреннего класса I, чье объявление происходит в статическом контексте, не имеет лексически закрывающих экземпляров. Однако, если я сразу объявлен в статическом методе или статическом инициализаторе, тогда у меня есть закрытый блок, который является самой внутренней блочной записью, лексически охватывающей декларацию I.

7. Для каждого суперкласса S из C, который сам прямой внутренний класс класса SO, существует экземпляр SO, связанный с i, известный как непосредственно охватывающий экземпляр i относительно S. Приближающийся экземпляр объекта по отношению к его прямому суперклассу класса, если он , определяется, когда конструктор суперкласса вызывается через явный оператор вызова конструктора.

8. Если внутренний класс (декларация которого не встречается в статическом контексте) относится к переменной экземпляра, которая является членом лексически охватывающего класса, используется переменная соответствующего лексически охватывающего экземпляра.

Пожалуйста Объясните мне эти вещи в простом термине, как его уже кажется очень запутанным, читая эти

ответ

4

они оба так O это сразу лексический ограждающий класс как Inner1 и Inner2.

Обратите внимание на «»

Внутренний класс С прямой внутренний класс класса О, если О является немедленно лексически ограждающих класс C и объявление С делает не возникают в статическом контексте

Не обязательно один. Их может быть много.

+0

Спасибо .. Можете ли вы уточнить в экземплярах один .. Это кажется более запутанным .. –

+0

Экземпляр 'O' является 1-м лексически охватывающим экземпляром экземпляра' Inner1'. –

Смежные вопросы