Программирование на Java



         

Объявление конструкторов - часть 5


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 конструкторов.




Содержание  Назад  Вперед