Загрузка...

Нужно воспроизвести код java

Тема в разделе Frontend создана пользователем ailurus 23 апр 2025. 126 просмотров

Загрузка...
  1. ailurus
    ailurus Автор темы 23 апр 2025 24 22 май 2021
    Может кто-то воспроизвести код джава там чи компиляция чи шо я хз, просто лень качать и разбиратся. Код написан ЧатомГпт, нужно заскринить просто результат .:bowing:Если интересно то код должен быть для контрольной работы по предмету современные технологии ооп


    JS
    // Класс Album представляет альбом музыкальных треков.

    import java.util.ArrayList;

    import java.util.List;



    public class Album {

    // Название альбома и автор (главный исполнитель)

    private final String title;

    private final String mainAuthor;

    // Список треков, входящих в альбом

    private final List<MusicTrack> tracks = new ArrayList<>();



    // Конструктор альбома

    public Album(String title, String mainAuthor) {

    this.title = title;

    this.mainAuthor = mainAuthor;

    }



    // Получить название альбома

    public String getTitle() {

    return title;

    }



    // Получить главного автора альбома

    public String getMainAuthor() {

    return mainAuthor;

    }



    // Получить список треков альбома

    public List<MusicTrack> getTracks() {

    return tracks;

    }



    // Добавить трек в альбом

    // Гарантируется, что один трек не добавится дважды

    public void addTrack(MusicTrack track) {

    if (track == null) {

    throw new IllegalArgumentException("Трек не может быть null.");

    }

    if (!tracks.contains(track)) {

    tracks.add(track);

    }

    }

    }

    // Класс MusicTrack представляет музыкальный трек. import java.util.ArrayList; import java.util.List;

    public class MusicTrack { private final String title; // Список авторов: первым добавляется автор альбома, затем – дополнительные авторы (если есть) private final List authors = new ArrayList<>(); // Ссылка на альбом, к которому принадлежит трек; гарантированно final, изменить нельзя private final Album album;

    /**
    * Конструктор трека.
    * @param title Название трека.
    * @param album Альбом, к которому принадлежит трек.
    * @param additionalAuthors Дополнительные авторы (могут отсутствовать).
    */
    public MusicTrack(String title, Album album, String... additionalAuthors) {
    if (album == null) {
    throw new IllegalArgumentException("Альбом не может быть null.");
    }
    this.title = title;
    this.album = album;
    // Обязательно добавляем главного автора альбома
    authors.add(album.getMainAuthor());
    // Если заданы дополнительные авторы, добавляем их
    for (String author : additionalAuthors) {
    if (author != null && !author.trim().isEmpty()) {
    authors.add(author);
    }
    }
    // Регистрируем данный трек в альбоме
    album.addTrack(this);
    }

    // Получить альбом, к которому принадлежит трек
    public Album getAlbum() {
    return album;
    }

    // Метод преобразования трека в строку согласно требованиям
    @Override
    public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append(title);
    if (authors.size() == 1) {
    sb.append(", автор: ").append(authors.get(0));
    } else {
    sb.append(", авторы: ").append(String.join(", ", authors));
    }
    return sb.toString();
    }


    }

    // Класс Starter содержит метод main, демонстрирующий работу с классами Album и MusicTrack.

    public class Starter {

    public static void main(String[] args) {

    // Создаем альбомы согласно заданию

    Album albumKuklovod = new Album("Кукловод", "Металлов");

    Album albumShosse = new Album("Шоссе к ООП", "Асид");



    // Создаем треки:

    // Трек "Состояние объектов" с дополнительным автором "Янг" принадлежит альбому "Шоссе к ООП"

    MusicTrack track1 = new MusicTrack("Состояние объектов", albumShosse, "Янг");

    // Трек "Шоссе к ООП" без дополнительного автора – используется только автор альбома

    MusicTrack track2 = new MusicTrack("Шоссе к ООП", albumShosse);

    // Трек "Одноразовый программист" с дополнительным автором "Бертон" принадлежит альбому "Кукловод"

    MusicTrack track3 = new MusicTrack("Одноразовый программист", albumKuklovod, "Бертон");



    // Выводим информацию обо всех созданных треках

    System.out.println("Все песни:");

    System.out.println(track1);

    System.out.println(track2);

    System.out.println(track3);



    // Выводим все треки альбома "Шоссе к ООП" используя ссылку на трек "Состояние объектов"

    System.out.println("\nТреки альбома \"Шоссе к ООП\":");

    for (MusicTrack track : track1.getAlbum().getTracks()) {

    System.out.println(track);

    }

    }

    }
     
  2. ПожилаяШляпа
Top