Вложенные классы в Java помогают структурировать код, но выбор между статическим и нестатическим может поставить в тупик. Когда лучше использовать один, а когда другой? Разберёмся на примерах.
Допустим, у нас есть
Order — класс для работы с заказами. У каждого заказа есть статусы, например, «Создан», «Оплачен», «Отправлен». Статусы удобно оформить как статический вложенный класс:
public class Order {
public static class Status {
public static final String CREATED = "Created";
}
}
// Использование:
String status = Order.Status.CREATED;Почему статический? Потому что Status — это утилитарный класс. Он хранит данные, которые одинаковы для всех заказов, и не связан с конкретным экземпляром Order.
А теперь рассмотрим пример с нестатическим классом. Пусть
Order имеет вложенный класс Item, представляющий товар в заказе: public class Order {
public class Item {
public Item(String name) { /* логика */ }
}
}
// Использование:
Order.Item item = new Order().new Item("Laptop");Здесь Item нужен для описания товаров в конкретном заказе, поэтому он привязан к экземпляру Order.
Подытожим: статический вложенный класс удобен для универсальных данных, а нестатический — для работы с данными конкретного объекта.
❤️ — если было полезно
📱 Java Developer | #обучение
