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

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

Открыта
Дополнительные материалы | 5 уровень - 1

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

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

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

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

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

Комментарии (37)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Lafaed
Уровень 36
7 апреля 2023, 05:33
Но у некоторых сущностей есть строго ограниченный круг значений. Например, 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 Full Stack Developer
31 марта 2024, 00:50
// Разве нельзя делать что-то подобное ? Ну смотрите, что может быть в этом случае:
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 Full Stack Developer
31 марта 2024, 12:58
Ну а вот как это можно сделать 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"));
    }
}
hidden #2513091
Уровень 44
14 декабря 2021, 13:27
Не так прост ENUM как казался ранее.
Ян
Уровень 41
1 июля 2021, 10:44
вот ещё статья от профессора, которую мы уже проходили, но перечитать её заново будет полезно
Anonymous #2489173
Уровень 35
2 июня 2021, 14:25
Лол, у меня кончилась материя, не могу дальше идти :\
hidden #2513091
Уровень 44
14 декабря 2021, 13:29
Я бы поделился , но ...
Рустам
Уровень 32
22 сентября 2020, 22:45
В музыке 12 нот, а не 7...
fecaldestroyer
Уровень 31
28 сентября 2020, 12:35
можно еще микротоновую музыку вспомнить, там их еще больше, только это все равно не ноты, а микротоны, а нот всего 7
Рустам
Уровень 32
29 сентября 2020, 19:47
По Вашей логике количество равное 7 тоже не имеет смысла. Упоминаемый мной 12-и нотный строй является равномерно темперированным (транспонируемым). 12 нот - это единственный непоколебимый стандарт, а 7 - для детей из детского сада и то, только в качестве проходящего понятия)
fecaldestroyer
Уровень 31
1 октября 2020, 14:44
Спасибо, что открыли тут всем глаза на страшную правду, это ведь действительно очень важно)
Николай QA Automation Engineer
22 октября 2020, 16:51
Фу, зануда :Р Общепринято считать что 7 нот, вот в лекции и дают этот пример... "Семинотность удобна и вряд ли кто-то будет переводить в другие нотные исчисления, равно как привыкли мы все считать в десятеричной системе, а не в двоичной, восьмеричной или шестнадцатиричной." -> полностью согласен с этой фразой!
the10or
Уровень 1
4 ноября 2020, 10:00
Большинство используемых на практике звукорядов все-таки состоят из 7-ми ступеней. И традиционные обозначения в гармонии основаны именно на этом факте. Даже если вы встретите обозначение 9 или 12 ступени, то, например, в тональности до-мажор это будут не соль-диез и си, а те же самые ре(2) и соль(5), то есть ноты из основного звукоряда, только через октаву. Поэтому и говорят, что в музыке всего семь нот. Кстати, многие жанры музыки вообще обходятся 5-6 нотами(пентатоника и блюзовый лад). По вашей колассификации блюз вообще должен считаться музыкой для эмбрионов.
Иван
Уровень 4
26 февраля 2021, 12:22
Даже интересно откуда 5 нот взялось, или считаешь полутона нотами?
cannyBackend Developer в Yandex
28 апреля 2021, 19:50
Оказывается и музыканты на Java переходят иногда)
Maks PanteleevJava Developer в Bell Integrator
21 мая 2021, 15:31
Может, Вам стоило бы не тратить время на скучное программирование, где не знают количества нот, а посвятить всего себя служению музыке?)
Elistar
Уровень 29
27 мая 2021, 16:12
давайте еще обсудим цвета... :) основных цвета три, а не 16 миллионов как например в графических редакторах со всеми различимыми глазу четвертьоттенками.
Рустам
Уровень 32
28 мая 2021, 21:37
Что Вы тут делаете, если считаете программирование скучным?
Рустам
Уровень 32
28 мая 2021, 21:53
Во-первых не пугайтесь, в этой правде ничего страшного нет. Во-вторых, если Вы считаете, что это не важно, зачем тогда реагируете на мой комментарий, да ещё так надменно?)))
Рустам
Уровень 32
28 мая 2021, 22:06
По твоему раз "полутон", значит какой-то неполноценный звук?)) "полузвук"?))))))
Maks PanteleevJava Developer в Bell Integrator
29 мая 2021, 07:28
Вы, сударь, настолько занудный тип, что я, пожалуй, удалюсь подальше, чтоб не заразиться
Mike-L
Уровень 43
5 июня 2021, 12:16
Респект!) UT queant laxis REsonare fibris MIra gestorum FAmuli tuorum, SOLve polluti LAbii reatum. Правда не помню, где Гвидо памятник стоит(если это ему), там композиция скульптуры с текстом(грамотой) мужчина стоит, там ещё вроде как в молитве скрыто
Hidden #213 Урoвень 13 (Forever&Ever)
17 апреля 2022, 20:24
Хаюшки!)
а посвятить всего себя служению музыке
Внезапный вопрос: "А ты на чём-нибудь умеешь играть? Из музыкальных инструментов" (или может умел когда-то) 🙃
Maks PanteleevJava Developer в Bell Integrator
18 апреля 2022, 08:04
к сожалению, нет, пытался научиться на гитаре, но чет не пошло) я пишу иногда тексты и мелодии, но реализовать их не могу))
Hidden #213 Урoвень 13 (Forever&Ever)
18 апреля 2022, 18:51
Точно, ты же слушал хип-хоп\рэп, тебе ближе битЫ (а теперь ещё и бИты)😎 Надо тебе написать программу на эту тему! P.S. не надоел ещё утомительный бэк-энд? Делаешь какой-нибудь pet-project?
Maks PanteleevJava Developer в Bell Integrator
18 апреля 2022, 21:16
ну вообще пишу в другом стиле) Не, бэкенд не надоел, проект пока не делаю, начал, но сейчас пока не до него, но планирую возобновить работу над ним. Просто сложно весь день сидеть кодить, чтоб потом еще и в свободное время кодить)
Андрей
Уровень 1
24 августа 2020, 16:00
Профессор чет обленился, 1 лекция и уже не в первый раз. Не скажу, что это плохо, просто наблюдение...
Владислав Backend Developer
16 мая 2020, 13:12
А где видео в нагрузку?🤔
Lafaed
Уровень 36
7 апреля 2023, 06:01
Нагугли себе видео сам - мы же тут самообучаемые будущие мега-специалисты в своей не лёгкой области современного научно-технического мира в веке цифровых технологий и бума развития электроники. Ну или просто опять нас <надурили>
kef
Уровень 39
17 декабря 2019, 18:29
>>Обычный Java-класс не может смоделировать и соблюсти эти сущности. Но класс Enum — может. Это же не верно? Обычный класс тоже может, Enum просто удобнее.
Lafaed
Уровень 36
7 апреля 2023, 06:02
Ну или просто опять нас <надурили>
Antigosu
Уровень 1
3 декабря 2019, 13:09
после таких задач я ожидал увидеть больше полезных ссылок 😟
Anonymous #1254738
Уровень 2
10 октября 2019, 21:16
"Как насчет нескольких полезных лекций" - а ссылка только на одну.