6. Анонимные классы
При создании объектов с помощью оператора new
возвращается ссылка на вновь созданный объект. Однако нас никто не обязывает эту ссылку присваивать в качестве значения ссылочной переменной. В таких случаях создается анонимный объект. Другими словами, объект есть, а переменной, которая бы содержала ссылку на этот объект, нет.
С практической точки зрения, это может выглядеть бесполезным, однако, анонимные объекты требуются довольно часто - обычно в тех ситуациях, когда объект класса используется один раз. Рассмотрим пример
В данном случае, нам нужен объект класса PrinterManager только для одного действия - для распечатки файла. То есть, мы создаем объект, вызываем метод, после чего объект нам больше нужен.
В первом случае используется обычный порядок работы с объектами - создаем объект класса PrinterManager, ссылка на объект записывается в ссылочную переменную manager.
Во втором случае мы создаем анонимный объект. Инструкцию
можно условно разбить на две части. Выражениеnew PrinterManager()
создает новый объект класса PrinterManager и возвращает ссылку на объект в качестве результата выражения. Поскольку ссылка не присваивается переменной, то такой объект является анонимным. Но так как выражение new PrinterManager()
возвращает ссылку на объект, мы можем у этой ссылки вызвать метод printFile()
.
Last updated
Was this helpful?