Объект как поле другого объекта в Java
Поле класса может иметь тип другого класса. Тогда у объекта хранится не строка или число, а ссылка на вложенный экземпляр:
class Author {
public String name = "";
}
class Post {
public String title = "";
public String text = "";
public Author author;
}
Создадим автора и запись с этим автором, затем выведем имя:
Author author = new Author();
author.name = "Ann";
Post post = new Post();
post.title = "News";
post.text = "Hello";
post.author = author;
System.out.println(post.author.name);
К вложенному объекту обращаются цепочкой полей после точки:
Post post = new Post();
post.title = "News";
post.author = new Author();
post.author.name = "Ann";
System.out.println(post.title);
System.out.println(post.author.name);
Один и тот же объект Author можно передать нескольким
записям - у каждой в поле будет ссылка на того же автора:
Author ann = new Author();
ann.name = "Ann";
Post first = new Post();
first.title = "News";
first.author = ann;
Post second = new Post();
second.title = "Tips";
second.author = ann;
System.out.println(first.author.name);
System.out.println(second.author.name);
Сделайте класс Department с названием отдела.
Сделайте класс Employee с именем, должностью
и полем Department.
Создайте объект Employee и выведите
имя работника и название его отдела.
Сделайте класс Address с городом и улицей.
Сделайте класс Client с именем и полем
Address. Выведите улицу клиента одним
выражением.