Java. Создание конструкторов.

Мы говорили о конструкторах ранее. Вы, возможно, помните, что каждый объект вашего Java-кода автоматически получает конструктор по умолчанию, не принимающий аргументов. Вы не должны определять его и можете не увидеть его в коде. Фактически, мы воспользовались этим в нашем классе Adult . Здесь не видно конструктора.

Однако на практике желательно определять свои собственные конструкторы. Поступая таким образом, вы можете быть абсолютно уверенны в том, что кто-либо, исследующий ваш класс, будет знать, как его создавать именно тем способом, который вы для этого предусматривали. Потому давайте создадим наш собственный конструктор без аргументов. Вспомните общую структуру конструктора:

accessSpecifier  ClassName(   аргументы  ) {
	  выражения конструктора  
}

Определить конструктор без аргументов для Adult просто:

public Adult {
}

Все. Наш конструктор без аргументов действительно не делает ничего, кроме создания Adult . Теперь при вызове new для создания Adult мы будем использовать наш конструктор без аргументов вместо конструктора по умолчанию. Но что если мы захотим, чтобы конструктор делал что-нибудь? В случае с Adult могло бы быть очень удобным уметь передавать фамилию и имя в виде объектов String и устанавливать в конструкторе наши переменные экземпляра в эти начальные значения. Это тоже сделать просто:

public Adult(String aFirstname, String aLastname) {
	firstname = aFirstname;
	lastname = aLastname;
}

Этот конструктор принимает два аргумента и устанавливает в их значения две наши переменные экземпляра. Теперь у нас есть два конструктора. Нам, фактически, не нужен первый конструктор, но нет ничего страшного, если мы сохраним его. Он предоставляет пользователям данного класса варианты выбора. Они могут создавать Adult с именем по умолчанию, либо создавать его с конкретным именем.

То, что мы сейчас сделали, даже если вы, возможно, не знали этого, называется перегрузкой метода. Мы обсудим эту концепцию более подробно в следующем разделе.

Рейтинг
( Пока оценок нет )
Загрузка ...