В этой главе мы научимся создавать объекты уже по строгим правилам и по стандартам. Конструкторы используются сугубо при работе с созданием объектом (почему и идёт ассоциация со строительством у большинства людей). Как Вы заметили, в 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: