Как правильно спроектировать класс?

120
11 мая 2021, 23:30

Необходимо спроектировать класс Friend с полями:

String myName

Friend myFriend

И методом:

letsBeFriends с одним параметром - передаваемым другом, который присваивает полю myFriend ссылку на переданного друга.

Как я понял, в этой задаче все классы Friend создает метод из класса Main, а потом какому-то выбранному экземпляру класса Friend (Вася) передает ссылку на другой экземпляр класса Friend (Петя), а поле класса Friend "Friend myFriend" хранит эту ссылку.

Подскажите, как оптимально решить эту задачу и проектировать этот класс?

Answer 1

Если я правильно поняла Ваш вопрос, то ничего особенного тут нет. Создаем класс Friend и одним из полей будет переменная того же класса Friend.

Как-то так:

public class Friend {
    private String myName;
    private Friend myFriend;
    public void letsBeFriends(Friend newFriend){
        this.myFriend = newFriend;
        newFriend.myFriend = this;
    }
    public Friend(String myName){
        this.myName = myName;
    }
    public static void main(String[] args){
        Friend friend1 = new Friend("Вася");
        Friend friend2 = new Friend("Петя");
        friend1.letsBeFriends(friend2);
    }
}
READ ALSO
Сохранить вложения из Email

Сохранить вложения из Email

Хочется из входящих писем выбирать вложения типа doc, docx (возможно еще какие-то файлы документов)Написал метод, но он только лишь создает файлы...

99
Создать метод для изменения данных в Inner Class

Создать метод для изменения данных в Inner Class

Пытаюсь сделать метод, который добавляет деньги в Storage, и также отнимаетТоесть по логике ведь, когда клиент кладет деньги в банк, общая сумма...

109
Перестал собираться maven проект

Перестал собираться maven проект

Проект с использование Spring, долгое время всё компилировалось а потом резко начал отказываться билдить модуль(единственный в проекте) А всего-то...

93
Как отобразить кириллицу в названии файла

Как отобразить кириллицу в названии файла

Сохраняю файл из директории в браузере, но почему-то в место кириллические символы заменяются на символ _

85