Перейти к контенту

Разница между статическими и нестатическими внутренними классами на Java

Ниже приведены существенные различия между нестатическими классами и статическими внутренними классами в Java.

Статический внутренний класс

Может получить доступ к статическим членам внешнего класса непосредственно. Но, чтобы получить доступ к членам экземпляра внешнего класса необходимо создать экземпляр внешнего класса.

 

Пример

public class Outer {
   int num = 234;
   static int data = 300;
   public static class Inner{
      public static void main(String args[]){
         Outer obj = new Outer();
         System.out.println(obj.num);
         System.out.println(data);
      }
   }
}

Итог

234
300

Нестатический внутренний класс

Может получить доступ к членам своего внешнего класса (оба экземпляра и статическому) непосредственно без конкретизации.

Пример

public class Outer2 {
   int num = 234;
   static int data =300;
   public class Inner{
      public void main(){
         System.out.println(num);
         System.out.println(data);
      }
   }
   public static void main(String args[]){
      new Outer2().new Inner().main();
   }
}

Итог

234
300

Статические методы разрешены только в классах верхнего уровня и статических внутренних классов.

Оцени статью

Средняя оценка / 5. Количество голосов:

 

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)