2013-11-18 2 views
4

У меня есть класс A, а статический вложенный класс - B.Использование ключевого слова «this» внутри вложенного статического класса java

public class A { 
    public static class B { 
     B(Temp x) { 
      x.reg(this); // need to pass the nested class reference. 
     } 
    } 
} 

Правильный ли приведенный выше код? Можно ли использовать ключевое слово this внутри встроенного конструктора статических классов?

Пожалуйста, помогите мне в этом. Благодарю.

+7

Почему бы вам не попробовать его скомпилировать? – Christian

+0

@ Христиан, я просто хотел знать, это правильный способ передачи ссылки ?. – Karthik207

+0

Что вы хотите, чтобы «это» обращалось? A или B? Да, вы можете использовать 'this' во внутреннем/вложенном классе, как и любой другой. – Radiodef

ответ

3

Да, это так. Для среды выполнения внутренние классы - это еще один отдельный класс. Если внутренний класс не является статичным, он просто будет ссылаться на внешний класс, но в вашем случае он является статическим, поэтому даже не так, как будто вы создали новый класс в новом файле.

Просто убедитесь, что что вы пишете «public», а не «Public»

2

1) Вложенный статический класс не требует ссылки на класс Outer, но для нестатического вложенного класса или для класса Inner требуется ссылка на внешний класс.

2) Внутренний класс (или нестатический вложенный класс) может обращаться к статическим и нестационарным членам класса Outer. Статический класс не может получить доступ к нестационарным членам класса Outer. Он может иметь доступ только к статическим членам класса Outer.

3) Экземпляр класса Inner не может быть создан без экземпляра внешнего класса, а класс Inner может ссылаться на данные и методы, определенные в классе Outer, в котором он гнездится, поэтому нам не нужно передавать ссылку объекта к конструктору Внутреннего класса. По этой причине внутренние классы могут сделать программу простой и лаконичной.

Для получения дополнительной информации см этого http://www.geeksforgeeks.org/static-class-in-java/

0

Поведения статического класса в так же, как static методе. Этот класс принадлежит классу, но не экземпляру. Следовательно, this не имеет смысла в статическом контексте.

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