Объект внутри объекта в Dart
Поле класса может иметь тип другого класса. Тогда у объекта хранится не строка или число, а ссылка на вложенный экземпляр:
class City {
String name;
City(this.name);
}
class Post {
String title;
String author;
City city;
Post(this.title, this.author, this.city);
}
Создадим объекты и выведем результат:
var city = City("Paris");
var post = Post("note", "smit", city);
print(post.city.name);
К вложенному объекту обращаются цепочкой полей после точки. Запишем город прямо в конструкторе и выведем заголовок и название города:
class City {
String name;
City(this.name);
}
class Post {
String title;
City city;
Post(this.title, this.city);
}
Создадим объект и выведем его:
var post = Post("note", City("Paris"));
print(post.title);
print(post.city.name);
Один и тот же объект City можно передать нескольким
записям - у каждой в поле будет ссылка на тот же город:
class City {
String name;
City(this.name);
}
class Post {
String title;
City city;
Post(this.title, this.city);
}
Создадим объекты и выведем результат:
var paris = City("Paris");
var p1 = Post("john", paris);
var p2 = Post("eric", paris);
print(p1.city.name);
print(p2.city.name);
Сделайте класс Department с названием отдела.
Сделайте класс Employee с именем, должностью
и объектом Department.
Создайте объект Employee и выведите
имя работника и название его отдела.
Сделайте класс Address с городом и улицей.
Сделайте класс Client с именем и полем
Address. Выведите улицу клиента одним
выражением.