22 июн. 2015 г.

Классы. Часть 4 – перегрузка конструкторов.

Наряду с перегрузкой обычных методов можно также выполнять перегрузку конструкторов. Взгляните еще раз на то, как мы создавали объекты Box:

Box box1 = new Box();

Что здесь означают скобки? Похоже на то, что мы вызываем метод. Фактически это как раз то, что мы делаем. У каждого Java класса есть по крайней мере один конструктор, который является методом с таким же именем, как и имя класса. Его назначение – выполнить всю необходимую инициализацию нового объекта. Это конструктор по умолчанию, поскольку у него нет аргументов. Но как вы помните, что если мы определяем в классе свои конструкторы, то если хотим использовать конструктор по умолчанию, то должны определить и его.

N0008

На примере слева определены три конструктора, синтаксис уже нам должен быть знаком, за исключением того, что опять же напоминаю, имя конструктора должно совпадать с именем класса и конструкторы не возвращают ни каких значений.

Теперь можно создавать экземпляры класса Box и инициализировать их значения сразу в операторе new:

Box box1 = new Box();
Box box2 = new Box(10);
Box box3 = new Box(10, 20, 30);

Как видите создавать и инициализировать поля объектов Box стало проще и приятней.

N0009Вот так может выглядеть пример программы создающей объекты типа Box и сразу же инициализирующей их поля значениями.

Вывод у этой программы следующий:

N0010

Как видите, соответствующий перегруженный конструктор вызывается в зависимости от параметров, указанных при выполнении операции new.

Комментариев нет:

Отправить комментарий