🎞️ Video-record

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

В этой главе мы научимся создавать объекты уже по строгим правилам и по стандартам. Конструкторы используются сугубо при работе с созданием объектом (почему и идёт ассоциация со строительством у большинства людей). Как Вы заметили, в Java много идей берутся из реальной жизни, закрепляя ассоциацией банальным названием объектов. Это придаёт большую читабельность и глубину понимания решений самих создателей Java. Давайте же начнём!

https://media.istockphoto.com/vectors/construction-icon-for-design-vector-id1041564266?k=6&m=1041564266&s=612x612&w=0&h=R8tBWWS1B9DOjcJeKnXcNYZaiWuNZkZXwkoKJ5e5X1k=

Суть👷🏼

Из наших заданий вспомните, что мы создавали объекты с помощью функции createBmw();. В чём минус такого способа? Давайте ещё раз вспомним код:

class Bmw {
	String color;
	int price;
	String owner; //владелец

	void createBmw(String color, int price, String owner) {
		this.color = color;
		this.price = price;
		this.owner = owner;
	}
}

Ну и наш main:

class Main {
	public static void main(String [] args) {
		Bmw alimBmw = new Bmw();
		alimBmw.createBmw("black", 1000, "Alim");	
	}
}

Вроде бы код логичен проблем нет, но если не вызвать функцию createBmw(...), то у нас создастся bmw без хозяина, цвета и цены - чушь какая-то, мы должны обязательно при создании абсолютно любого Bmw указывать им хотя бы цену и цвет.

Для этого присмотримся к строчке new Bmw();своим синтаксисом со скобочками напоминает функцию, почему-то ещё и скобочки пустые. Дело в том, что абсолютно каждый класс имеет конструктор, нечто очень сильно напоминающую функцию, давайте рассмотрим на коде и будет всё понятно:

class Bmw {
	String color;
	int price;
	String owner; //владелец

	//перед конструктором пока что ставим public
	//поясню в пункте модификаторы доступа
	public Bmw(String color, int price, String owner) {
		this.color = color;
		this.price = price;
		this.owner = owner;
	}
}

и любимый main: