В заключение рассмотрим применение модификаторов
public class Test { public Test() { System.out.println("Test()"); }
public Test(int x) { this(); System.out.println("Test(int x)"); } }
После выполнения выражения new Test(0) на консоли появится:
Test() Test(int x)
В заключение рассмотрим применение модификаторов доступа для конструкторов. Может вызвать удивление возможность объявлять конструкторы как private. Ведь они нужны для генерации объектов, а к таким конструкторам ни у кого не будет доступа. Однако в ряде случаев модификатор private может быть полезен. Например:
private-конструктор может содержать инициализирующие действия, а остальные конструкторы будут использовать его с помощью this, причем прямое обращение к этому конструктору по каким-то причинам нежелательно;- запрет на создание объектов этого класса, например, невозможно создать экземпляр класса Math;
- реализация специального шаблона проектирования из ООП Singleton, для работы которого требуется контролировать создание объектов, что невозможно в случае наличия не-private конструкторов.
Содержание Назад Вперед