statische Felder in inneren Klassen verboten: Rationale
java verbietet die Deklaration statischer Felder und Methoden innerhalb der inneren Klassen (oder gewöhnliche Klassen). Im Gegensatz zu statischen verschachtelten Klassen sind an Fälle ihrer umschließenden Klasse gebunden. Dies bedeutet, dass jede Instanz einer inneren Klasse eine einzigartige Assoziation mit einer bestimmten Instanz der beigefügten Klasse hat. Infolgedessen würde das Erlauben statischer Felder innerhalb innerer Klassen Unklarheiten in Bezug auf welche Instanz das statische Feld zu.
das folgende Beispiel betrachten:
Klasse OuterClass { Klasse Innerclass { statische int i = 100; // Fehler kompilieren } }
class OuterClass { class InnerClass { static int i = 100; // compile error } }
Darüber hinaus würden statische Felder innerhalb innerer Klassen dem Prinzip der instanzbasierten Abhängigkeit widersprechen. Da sich innere Klassen auf Instanzen der umschließenden Klasse verlassen, ist es für sie nicht sinnvoll, statische Merkmale zu haben, die so konzipiert sind, dass sie unabhängig von jeder Instanz arbeiten. Das statische Feld gehört zu.
Einhaltung von Prinzipien:
Erhalten Sie die instanzabhängige Natur von inneren Klassen und vermeiden Sie Widersprüche mit statischen Merkmalen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3