#14 - Конструкторы при создании класса

#14 - Конструкторы при создании класса

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

Видеоурок

Конструктор класса очень удобен и по своему виду схож с обыкновенными функциями. За счёт конструктора мы можем установить значения для объекта сразу при его создании.


Конструктор должен иметь одинаковое название с классом. Пример создания конструктора показан ниже:

class Book {
	private int pages;
	public String name;
	private float weight;
 
	public void getInfoBook () {
		System.out.print("В книге " + name + " находиться " + pages + " страниц. ");
		System.out.print("При этом она весит " + weight + "кг!");
		System.out.println("");
	} 

	Book (int pages, float weight) {
		this.pages = pages;
		this.weight = weight;
	}
 
	Book (int pages, float weight, String name) {
		this.pages = pages;
		this.weight = weight;
		this.name = name;
	}
}

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


Компилятор сам определяет какой конструктор необходимо использовать в зависимости от передаваемых параметров и их типов данных. 


В коде выше переменные идут с модификатором доступа private. Дело в том, что все переменные лучше делать либо private, либо protected. Доступ к переменным должен осуществляться только за счёт методов и конструкторов. Доступ к полям напрямую должен быть закрыт.


Дополнительно создадим два объекта и выведем информацию:

public class Main {
	public static void main(String[] args) {
		Book sherlock_holms = new Book(460, 1.7f); // Используем 1 конструктор
		sherlock_holms.name = "Шерлок Холмс"; // Устанавливаем вручную значение для name
		sherlock_holms.getInfoBook ();
 
		Book green_mile = new Book(750, 2.8f, "Зеленая миля"); // Используем второй конструктор
		green_mile.getInfoBook ();
	}
}
Поскольку переменная name имеет public модификатор доступа, то мы можем ссылаться к ней отдельно. Лучше так не делать и для неё тоже установить модификатор private.

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

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Разработка Андроид программы с базой данных
6 уроков
Изучение стека MEAN: MongoDB, Express, Angular и Node JS
10 уроков
Создание приложения на React JS / Использование API
7 уроков
Уроки Vue.js для начинающих
10 уроков
Изучение библиотек jQuery
24 урока
Создание динамического веб сайта
22 урока
Комментарии для сайта Cackle