Конструкторы в Java

FacebooktwittertumblrFacebooktwittertumblr

конструкторы Java_vertex

Данная статья:

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего "Самоучителя по Java"

Конструкторы - это специальные методы, которые вызывается при создании объекта. Они "конструируют" новый объект определенного класса.

Шаг за шагом

Итак, чтобы объяснить нагляднее, представим, как работает программа.

1. Вы создаете основное "тело" программы, прописывая метод main:

2. Допустим, Вам нужен объект класса Cat. Класс Cat у вас уже есть, и выглядит он так:

Вы пишете строку, которая должна создать объект класса Cat:

3. В тот момент, когда программа приступает к созданию объекта cat1, она идет в class Cat:

Тут-то и появляется необходимость в конструкторах. Ведь в первую очередь Java ищет именно конструкторы, которые укажут, как именно создавать объект.

Но в нашем классе есть только геттеры и сеттеры - никаких конструкторов! Что же делать? Теперь объект не создастся?

Создастся, конечно. А все потому, что по-настоящему конструктор все равно присутствует - просто он явно не указан. Теперь, давайте посмотрим как создавать конструкторы явно, и какими они вообще бывают.

Явные и неявные конструкторы

Существуют два вида конструкторов - явные и неявные. Вы уже знаете, что, даже если ничего не прописать в коде класса, Вы все равно сможете "сконструировать" объект этого класса. Но, если все и так работает, зачем их вообще писать? Какие преимущества это дает?

Преимущество 1. Контроль над вводом данных.

Сначала, дайте посмотрим на изображение. Какие отличия Вы видите?

конструкторы Java_vertex

Если Вы заметили, что у всех трех классов разное количество параметров в конструкторе - Вы были правы:

конструкторы Java_vertex

Явно прописывая конструктор, Вы получаете возможность регулировать, какие параметры и в каком количестве нужно задать для создания объекта определенного класса.

Код№1 - класс Cat - скорее всего, был создан с использованием неявного конструктора. Он не просит никаких параметров.

Код№2 - класс Scanner - уже использует явно описанный конструктор. Он требует один параметр - и без него создать объект невозможно.

Код№3 - класс Dog - тоже использует явно описанный конструктор. Но тут, как мы видим, требуется уже три параметра - имя ("Шарик"), порода ("мопс") и возраст собаки (2 года).

Преимущество 2. Меньше строчек кода.

Вы заметили, как конструктор уменьшает количество строк в коде? Сравните:

и этот код:

В первом случае, у нас 3 строчки. Во втором - одна:

А это уже в три раза меньше! 🙂

Как создается конструктор

Итак, как нам сделать этот самый конструктор?

Конструктор - это самый обычный метод, который имеет такое же название, как и класс. Вот пример:

 

Тем не менее, как Вы видите, этот конструктор ничего не требует. Таким образом, мы просто создали такой же, как и конструктор по умолчанию. Если захотим потребовать 1 параметр, запишем следующий код:

Теперь, невозможно будет создать объект класса Cat без того, чтобы указать его имя. Если мы хотим больше параметров, просто указываем больше элементов в скобках:

Соответственно, внутри метода мы присваиваем введенные значения параметрам нашего класса.

Готово! Теперь Вы умеете создавать конструкторы для классов в Java!


Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Детальнее -  у нас на сайте.

 

FacebooktwittertumblrFacebooktwittertumblr

FacebooktwittertumblrFacebooktwittertumblr
Самоучители--узнать детальнее--