QNA > P > Perché I Metodi Delle Classi Interne Non Possono Essere Statici In Java?

Perché i metodi delle classi interne non possono essere statici in Java?

La ragione per cui le classi interne non possono avere membri statici è che i membri statici sono di solito istanziati quando il programma inizia. Tuttavia, una classe interna dipende dall'avere un'istanza della classe che la racchiude per poterla creare e quindi accedere ai suoi membri. Quindi la decisione di non avere membri statici per una classe interna ha senso a causa di questa dipendenza. Il membro statico non è accessibile fino a quando non è stato creato qualcosa, cioè l'istanza della classe che lo racchiude, quindi perché averlo?

Potrei anche vedere questo avere senso a livello di implementazione, perché se la JVM ha una posizione speciale per i membri statici, allora non avrà molto senso inquinare quello spazio con membri statici della classe interna, che non sono disponibili nello spazio dei nomi globale finché non esiste un'istanza di un'altra classe.

I will leave you with an example of how to access inner class members

  1. public class Outer { 
  2. public static class StaticInnerClass { 
  3. public static int member = 1337; 
  4.  
  5. public class InnerClass { 
  6. // public static int member = 1337; // Error 
  7. public int member = 1337; 
  8.  
  9. public static void main(String args[]) { 
  10. int innerMember = Outer.StaticInnerClass.member; // OK 
  11. // int innerClassMember = Outer.InnerClass.member // Error 
  12.  
  13. Outer outer = new Outer(); 
  14. InnerClass innerclass = outer.new InnerClass(); 
  15. int innerClassMember = innerclass.member; // OK 
  16.  

Di Eldwon

Ho dimenticato sia il mio login ID che la mia password per IOB NetBanking. Cosa dovrei fare? :: Cos'è il growth hacking?
Link utili