Найти в Дзене
DEBAGanov

Java 742. В чем разница вложенных и внутренних классов?

В Java вложенные классы (nested classes) могут быть статическими или нестатическими. Статические вложенные классы используются, когда класс находится внутри другого класса, но не зависит от экземпляра внешнего класса. Нестатические вложенные классы (inner classes), также известные как внутренние классы, наоборот, зависят от экземпляра внешнего класса.

Объявление нестатического внутреннего класса происходит с использованием ключевого слова 'class' внутри тела внешнего класса. Вот пример:

class OuterClass {
private int x;

class InnerClass {
public int getX() {
return x;
}
}
}

Объявление статического вложенного класса выглядит следующим образом:

class OuterClass {
static class NestedClass {
// Код класса }
}

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

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov