В Java вложенные классы определяются внутри области действия другого класса. Они предоставляют возможность логически группировать связанные классы. В Java существует несколько типов вложенных классов, в том числе:
-
Статические вложенные классы: они объявляются как статические внутри другого класса. Они связаны с внешним классом, а не с экземпляром внешнего класса.
-
Внутренние классы. Также известные как нестатические вложенные классы, они объявляются без ключевого слова static. Внутренние классы имеют доступ к членам (полям и методам) внешнего класса, включая частные члены.
-
Локальные классы: они определяются внутри блока или метода внешнего класса. Они доступны только внутри этого блока или метода.
-
Анонимные классы. Это тип локального класса, у которого нет имени. Обычно они используются для реализации интерфейсов или расширения классов «на лету».
Вот пример того, как можно определить эти вложенные классы:
public class OuterClass {
private int outerField;
public void outerMethod() {
// Code for outer method
}
// Static nested class
public static class StaticNestedClass {
// Code for static nested class
}
// Inner class
public class InnerClass {
// Code for inner class
}
public void someMethod() {
// Local class
class LocalClass {
// Code for local class
}
// Anonymous class
Runnable anonymousClass = new Runnable() {
public void run() {
// Code for anonymous class
}
};
}
}