JavaRush /Курсы /Java Multithreading /Полезные ссылки от профессора — 25

Полезные ссылки от профессора — 25

Java Multithreading
5 уровень , 13 лекция
Открыта
Дополнительные материалы | 5 уровень - 1

— Привет, Амиго! Как насчет нескольких полезных лекций и видео «в нагрузку»?

— Профессор, это на вас не похоже… Но я только «за»!

— Отлично. Тогда вот твои дополнительные источники на сегодня.

Enum. Практические примеры. Добавление конструкторов и методов.

Одно из главных преимуществ ООП заключается в том, что оно позволяет легко моделировать сущности из реального мира. Но у некоторых сущностей есть строго ограниченный круг значений. Например, 4 времени года, 7 нот в музыке, 12 месяцев в году. Обычный Java-класс не может смоделировать и соблюсти эти сущности. Но класс Enum — может.

Комментарии (37)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Lafaed Уровень 36
7 апреля 2023
Но у некоторых сущностей есть строго ограниченный круг значений. Например, 4 времени года, 7 нот в музыке, 12 месяцев в году. Обычный Java-класс не может смоделировать и соблюсти эти сущности. Но класс Enum — может

//  Обычный Java-класс не может смоделировать и соблюсти эти сущности
public class Season {
    public static final String winter = "Winter";
    public static final String spring = "Spring";
    public static final String summer = "Summer";
    public static final String autumn = "Autumn";
}

//  Но класс Enum — может.
public enum Seasons {
    winter("Winter"),
    spring("Spring"),
    summer("Summer"),
    autumn("Autumn")

    private final String season;

    Seasons(String season) {
        this.season = season;
    }

    //  И далее еще куча всякой шняги...
}

//  Разве нельзя делать что-то подобное ?
Denis Odesskiy Уровень 47
31 марта 2024
// Разве нельзя делать что-то подобное ? Ну смотрите, что может быть в этом случае:

public class Season {
    public static final String winter = "Winter";
    public static final String spring = "Spring";
    public static final String summer = "Summer";
    public static final String autumn = "Autumn";
    private final String season;

    Season(String season) {
        this.season = season;
    }

    @Override
    public String toString() {
        return String.format("Now is the time of year: %s", season);
    }


    public static void main(String[] args) {
        Season season = new Season("UFO");
        System.out.println(season);
    }
}
Таким образом в классе нет предохранителя от того что какой-то нерадивый его пользователь не добавит новый сезон, или 32 мая 🙂 enum же этого сделать так явно не позволит... P/S: Можно конечно написать класс, присвоив полям константы и закрывшись приватным конструктором, ограничить значения. Но во многих подобных случаях воспользоваться энумом легче... Ну например так:

public class Season {
    private String name;

    private Season(String name) {
        this.name = name;
    }
    public static final Season WINTER = new Season("Winter");
    public static final Season SPRING = new Season("Spring");
    public static final Season SUMMER = new Season("Summer");
    public static final Season AUTUMN = new Season("Autumn");

    @Override
    public String toString() {
        return String.format("Now is the time of year: %s", name);
    }
}

public class Main {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}
Denis Odesskiy Уровень 47
31 марта 2024
Ну а вот как это можно сделать Enum'om:

public enum SeasonEnum {
    WINTER("Winter"),

    SPRING("Spring"),

    SUMMER("Summer"),

    AUTUMN("Autumn");
    private String name;

    SeasonEnum(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return String.format("Now is the time of year: %s", name);
    }
}

public class Main {
    public static void main(String[] args) {
     System.out.println(SeasonEnum.valueOf("SUMMER"));
    }
}
Yarik Уровень 44
14 декабря 2021
Не так прост ENUM как казался ранее.
Ян Уровень 41
1 июля 2021
вот ещё статья от профессора, которую мы уже проходили, но перечитать её заново будет полезно
Anonymous #2489173 Уровень 35
2 июня 2021
Лол, у меня кончилась материя, не могу дальше идти :\
Yarik Уровень 44
14 декабря 2021
Я бы поделился , но ...
Рустам Уровень 32
22 сентября 2020
В музыке 12 нот, а не 7...
fecaldestroyer Уровень 31
28 сентября 2020
можно еще микротоновую музыку вспомнить, там их еще больше, только это все равно не ноты, а микротоны, а нот всего 7
Рустам Уровень 32
29 сентября 2020
По Вашей логике количество равное 7 тоже не имеет смысла. Упоминаемый мной 12-и нотный строй является равномерно темперированным (транспонируемым). 12 нот - это единственный непоколебимый стандарт, а 7 - для детей из детского сада и то, только в качестве проходящего понятия)
fecaldestroyer Уровень 31
1 октября 2020
Спасибо, что открыли тут всем глаза на страшную правду, это ведь действительно очень важно)
Николай Уровень 41
22 октября 2020
Фу, зануда :Р Общепринято считать что 7 нот, вот в лекции и дают этот пример... "Семинотность удобна и вряд ли кто-то будет переводить в другие нотные исчисления, равно как привыкли мы все считать в десятеричной системе, а не в двоичной, восьмеричной или шестнадцатиричной." -> полностью согласен с этой фразой!
the10or Уровень 1
4 ноября 2020
Большинство используемых на практике звукорядов все-таки состоят из 7-ми ступеней. И традиционные обозначения в гармонии основаны именно на этом факте. Даже если вы встретите обозначение 9 или 12 ступени, то, например, в тональности до-мажор это будут не соль-диез и си, а те же самые ре(2) и соль(5), то есть ноты из основного звукоряда, только через октаву. Поэтому и говорят, что в музыке всего семь нот. Кстати, многие жанры музыки вообще обходятся 5-6 нотами(пентатоника и блюзовый лад). По вашей колассификации блюз вообще должен считаться музыкой для эмбрионов.
Иван Уровень 3
26 февраля 2021
Даже интересно откуда 5 нот взялось, или считаешь полутона нотами?
canny Уровень 31
28 апреля 2021
Оказывается и музыканты на Java переходят иногда)
Maks Panteleev Уровень 41
21 мая 2021
Может, Вам стоило бы не тратить время на скучное программирование, где не знают количества нот, а посвятить всего себя служению музыке?)
Elistar Уровень 29
27 мая 2021
давайте еще обсудим цвета... :) основных цвета три, а не 16 миллионов как например в графических редакторах со всеми различимыми глазу четвертьоттенками.
Рустам Уровень 32
28 мая 2021
Что Вы тут делаете, если считаете программирование скучным?
Рустам Уровень 32
28 мая 2021
Во-первых не пугайтесь, в этой правде ничего страшного нет. Во-вторых, если Вы считаете, что это не важно, зачем тогда реагируете на мой комментарий, да ещё так надменно?)))
Рустам Уровень 32
28 мая 2021
По твоему раз "полутон", значит какой-то неполноценный звук?)) "полузвук"?))))))
Maks Panteleev Уровень 41
29 мая 2021
Вы, сударь, настолько занудный тип, что я, пожалуй, удалюсь подальше, чтоб не заразиться
Mike-L Уровень 43
5 июня 2021
Респект!) UT queant laxis REsonare fibris MIra gestorum FAmuli tuorum, SOLve polluti LAbii reatum. Правда не помню, где Гвидо памятник стоит(если это ему), там композиция скульптуры с текстом(грамотой) мужчина стоит, там ещё вроде как в молитве скрыто
Hidden #213 Уровень 48
17 апреля 2022
Хаюшки!)

а посвятить всего себя служению музыке
Внезапный вопрос: "А ты на чём-нибудь умеешь играть? Из музыкальных инструментов" (или может умел когда-то) 🙃
Maks Panteleev Уровень 41
18 апреля 2022
к сожалению, нет, пытался научиться на гитаре, но чет не пошло) я пишу иногда тексты и мелодии, но реализовать их не могу))
Hidden #213 Уровень 48
18 апреля 2022
Точно, ты же слушал хип-хоп\рэп, тебе ближе битЫ (а теперь ещё и бИты)😎 Надо тебе написать программу на эту тему! P.S. не надоел ещё утомительный бэк-энд? Делаешь какой-нибудь pet-project?
Maks Panteleev Уровень 41
18 апреля 2022
ну вообще пишу в другом стиле) Не, бэкенд не надоел, проект пока не делаю, начал, но сейчас пока не до него, но планирую возобновить работу над ним. Просто сложно весь день сидеть кодить, чтоб потом еще и в свободное время кодить)
Андрей Уровень 41
24 августа 2020
Профессор чет обленился, 1 лекция и уже не в первый раз. Не скажу, что это плохо, просто наблюдение...
Владислав Уровень 41
16 мая 2020
А где видео в нагрузку?🤔
Lafaed Уровень 36
7 апреля 2023
Нагугли себе видео сам - мы же тут самообучаемые будущие мега-специалисты в своей не лёгкой области современного научно-технического мира в веке цифровых технологий и бума развития электроники. Ну или просто опять нас <надурили>
kef Уровень 39
17 декабря 2019
>>Обычный Java-класс не может смоделировать и соблюсти эти сущности. Но класс Enum — может. Это же не верно? Обычный класс тоже может, Enum просто удобнее.
Lafaed Уровень 36
7 апреля 2023
Ну или просто опять нас <надурили>
Antigosu Уровень 28
3 декабря 2019
после таких задач я ожидал увидеть больше полезных ссылок 😟
Anonymous #1254738 Уровень 2
10 октября 2019
"Как насчет нескольких полезных лекций" - а ссылка только на одну.