Поля и методы в Java: сцепление экземпляров методов цепочкой
Два или более экземпляров вызова методов могут быть соединены вместе с помощью оператора доступа к члену; в результате получается более компактный код. Для создания экземпляра цепочки вызовов методов, необходимо повторно сделать конструктор для своих методов экземпляра. Ключ показывает, что свои методы возвращают ссылку на текущий объект, который указан с помощью ключевого слова.
Ниже вы можете видеть, что я изменил типы возвращения методов, связанных вместе с типом класса. Я также использовал return, чтобы убедиться, что каждый метод всегда возвращает текущую ссылку на объект.
Листинг: Настройка цепи метода экземпляра вызова
public class Up7 { public static void main(String[] args) { Hedgehog hedgehog = new Hedgehog().penDown(); Hedgehog.move(5).turnLeft().move(15).turnRight().move(10).penUp(); } } class Hedgehog { Hedgehog penUp() { System.out.println(“Поднять карандаш”); return this; } Hedgehog penDown() { System.out.println(“Опустить карандаш”); return this; } Hedgehog turnLeft() { System.out.println(“Повернуть влево”); return this; } Hedgehog turnRight() { System.out.println(“Повернуть вправо”); return this; } Hedgehog move(int numUnits) { System.out.println(“движение на “ + numUnits + “ единиц”); return this; } }Исходный код в листинге выше показывает цепочки методов экземпляра вызова. Это приложение состоит из основного класса Up7 и вспомогательного класса Hedgehog. Основной класс вызывает разные методы класса Hedgehog и получается цепь вызовов по этой ссылке. Вы обратили внимание, что в классе Hedgehog нет конструктора? Мы решили не объявлять конструктор, просто потому что инициализировать и нечего.
Когда никакие конструкторы не объявлены, компилятор сам создает конструктор без аргументов по умолчанию, который ничего не делает. Компилятор не создает конструктор по умолчанию в том случае, когда объявлен по крайней мере один конструктор.
◄ Предыдущая статья цикла Продолжение следует ...
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.