статические поля, запрещенные во внутренних классах: Rationale
java запрещает декларацию статических полей и методов внутри внутренних классов (или обычных серийных классов). Классы, связаны с случаями их класса. Это означает, что каждый экземпляр внутреннего класса имеет уникальную ассоциацию с конкретным экземпляром класса прилога. В результате разрешение статических полей внутри внутренних классов создаст двусмысленность, в каком случае статическое поле относится. класс innerclass { статический int i = 100; // Скомпилируйте ошибку } }
Если бы статические поля были разрешены во внутренних классах, не было бы четкого способа определить, какой экземпляр Overclass, статическое поле, к которому я принадлежит. Эта двусмысленность может привести к ошибкам времени выполнения и непоследовательному поведению.
, кроме того, разрешение статических полей внутри внутренних классов противоречит принципу зависимости на основе экземпляра. Поскольку внутренние классы полагаются на случаи класса окружения, для них не имеет смысла иметь статические особенности, которые предназначены для работы независимо от какого -либо экземпляра. принадлежит.
class OuterClass { class InnerClass { static int i = 100; // compile error } }приверженность принципам проектирования:
сохранить зависимую от экземпляра характер внутренних классов и избегать противоречий со статическими особенностями.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3