У меня есть сомнение, если у меня есть нестатический вложенный класс, почему мне нужно использовать ключевое слово «this» для вызова метода или переменной моего вмещающего класса? Что я думаю о следующем: если нестатический вложенный класс может обращаться к методам и переменным своего охватывающего класса, а экземпляр нестатического вложенного объекта уже связан с его экземпляром окружающего объекта, почему мне нужно использовать «этот», ? Например, у меня есть следующий код:Зачем мне нужно использовать ключевое слово «this» для вызова моих закрытых методов или переменных
public class ClassA {
public class ClassB {
public void bye() {
ClassA.this.hello();
// Why not just ClassA.hello()?
}
}
public void hello() {
}
}
и если из метода моего класса ограждающего Я хочу вызвать метод одного из шахтных нестатических классов, как я должен делать, например, если из моего метода? hello() Я хочу позвонить bye() как мне набрать?
Вы можете просто набрать hello(). Без этого ключевого слова возникла бы двусмысленность со статическими методами внешнего класса. –
Определение находится здесь: http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.4 – flup