Наряду с перегрузкой обычных методов можно также выполнять перегрузку конструкторов. Взгляните еще раз на то, как мы создавали объекты Box:
Box
box1 = new Box();Что здесь означают скобки? Похоже на то, что мы вызываем метод. Фактически это как раз то, что мы делаем. У каждого Java класса есть по крайней мере один конструктор, который является методом с таким же именем, как и имя класса. Его назначение – выполнить всю необходимую инициализацию нового объекта. Это конструктор по умолчанию, поскольку у него нет аргументов. Но как вы помните, что если мы определяем в классе свои конструкторы, то если хотим использовать конструктор по умолчанию, то должны определить и его.
На примере слева определены три конструктора, синтаксис уже нам должен быть знаком, за исключением того, что опять же напоминаю, имя конструктора должно совпадать с именем класса и конструкторы не возвращают ни каких значений.
Теперь можно создавать экземпляры класса Box и инициализировать их значения сразу в операторе new:
Box
box1 = new Box();Box box2 = new Box(10);
Box box3 = new Box(10, 20, 30);
Как видите создавать и инициализировать поля объектов Box стало проще и приятней.
Вот так может выглядеть пример программы создающей объекты типа Box и сразу же инициализирующей их поля значениями.
Вывод у этой программы следующий:
Как видите, соответствующий перегруженный конструктор вызывается в зависимости от параметров, указанных при выполнении операции new.
Комментариев нет:
Отправить комментарий