JavaRush /Курсы /Java Syntax /Задачи на создание объектов

Задачи на создание объектов

Java Syntax
5 уровень , 5 лекция
Открыта

— Привет, Амиго! Вот тебе несколько задачек на создание классов и объектов:

Комментарии (735)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Віктор Уровень 17
5 октября 2024
Интересно, кто знает что значит фраза ваше решение лучше 40%. Ознаает что я в 40% лучших ? или что я лишь попал в 40% из 100% возможных и по факту я лишь в списке луших из 100 человек всего лишь от 60 до 100 Вообщем нужно стремится чтобы проент был выше или ниже ...
Зепп Бранниган Уровень 41 Moderator
8 октября 2024
Это означает, что N% студентов, решивших эту задачу, потратили на ее решение больше попыток, чем Вы.
Vladislav Ermolaev Уровень 1
31 августа 2024
Почему методы именуются с маленькой буквы?
Ildar Gabitov Уровень 14
7 июля 2023
Чтобы не писать Getter/Setter на каждую переменную, есть фишка в IDEA. В Поиске ищете Getter, выбираете его как на картинке, в открывшемся меню выбираете на какие переменные нужно создать Get/Set методы и вуаля - готово.
Anonymous #2277416 Уровень 13
23 июля 2023
А можно еще проще. Ставим курсор туда, где надо вставить геттер / сеттер, и нажимает Alt+Insert.
6 марта 2024
спасибо дружище!
Даниил Синицын Уровень 12
13 марта 2023
Блин, прикол конечно. Это четвертая лекция, а тут уже надо понимать, что такое конструктор. Хотя конструкторы даются только в восьмой лекции. И это в задаче с пометкой "легкая". Конечно во вступлении к 5у уровню даются пояснения, которые раскрывают суть происходящего. Но вот далеко не все знакомы с подобным подходом, поэтому у некоторых он вызывает недоумение. Я раньше тоже удивлялся, но помог изученный в перерыве между подходами к этому ресурсу курс на степике "как учиться эффективно". Там раскрывалась одна из парадигм обучения, которой, видимо, руководствовались авторы данного курса. Кратко суть такая: Шаг 1 - дать практику, чтобы обучающиеся могли "пощупать" тему, заинтересоваться. Понять, что им не хватает знаний, т.к. часть заданий без подготовки решить не получится. Шаг 2 - дать теоретические знания, в т.ч. с учетом пробелов, которые обучающиеся у себя выявили в ходе шага 1. Это должно простимулировать обучающихся лучше усвоить материал. Шаг 3 - Дать задание на закрепление пройденного материала. Соответственно вывод опять же простой - если не можете что то решить основываясь на данных в этом курсе до этого момента знаниях - у вас есть несколько вариантов. 1. Гуглите. 2. Читайте доп. литературу. 3. "Покрутите" задачу и оставьте ее "на потом". Теорию дадут через несколько тем, можно будет вернуться и решить ее. Отчаиваться и бросать обучение с формулировкой "ничерта не понятно!" - ни в коем случае не следует.
Вячеслав Уровень 28
19 июля 2023
Конструктор изучается позже а дается сейчас, чтобы учить тому что в работе будут давать то, чего ты не знаешь. Навык поиска информации - учат этому навыку. Понемногу.
Х-50 Уровень 24
24 января 2023
Вернулся к нерешённым задачам с 22 уровня сюда. НО - ничего не понятно. Реально. Перед этой задачей следовало бы дать больше теории и задач на элемунты решения этойзадачи. В конейц добило как return score > 0; преобразуется в булеву функцию???? Булево выражение может принять только True/False, а 1 и 0 в Джаве не могут приравниываться к True/False,... Или я не правильно понимаю? public boolean fight(Cat anotherCat){ int ageScore = Integer.compare(this.age, anotherCat.age); int weightScore = Integer.compare(this.weight, anotherCat.weight); int strengthScore = Integer.compare(this.strength, anotherCat.strength); int score = ageScore + weightScore + strengthScore; return score > 0;
Timur Khasmamedov Уровень 14 Expert
26 января 2023

return score > 0;
score > 0 должно дать на выходе булево значение, т.е. фолс/тру. (score напомню типа int) и ты его вернешь. ты можешь также ввести лишнюю переменную типа булеан и отдельно вычислить это булево значение. как например того, что ты пишешь в вопросе... код в теле выполнится лишь тогда, когда число numb больше нуля.

if (numb > 0) {
//todoSmth
};
а вообще похоже решение и в одну строчку нормально читается
Anonymous #2721182 Уровень 29
12 января 2023
Бред. Если брать решение как в ответе, то false false false Если поменять на System.out.println(cat2.fight(cat1)); System.out.println(cat3.fight(cat2)); System.out.println(cat1.fight(cat3)); То false true false Если поменять на System.out.println(cat2.fight(cat1)); System.out.println(cat3.fight(cat2)); System.out.println(cat3.fight(cat1)); То false true true Это как?
Mikhail Уровень 24
28 декабря 2022
public boolean fight(Cat anotherCat){ int ageScore = this.age > anotherCat.age ? 1 : -1; int weightScore = this.weight > anotherCat.weight ? 1 : -1; int weightStrength = this.strength > anotherCat.strength ? 1 : -1; return ageScore + weightScore + weightStrength > 0; } не пропускает :(
Роман Уровень 2
29 декабря 2022
я полагаю, что это из-за невозможности в вашем случае результата (ageScore + weightScore + weightStrength) = 0, т.е. гипотетической ничьи. не то что бы это проблема с практической точки зрения, ведь в любом случае он вернёт false, но валидатор хочет видеть возможность получения 0.
Дмитрий Уровень 22
11 января 2023
Изначально сделал также как ты и тоже валидатор не пропускал. Как я понял, проблема в том, что, хоть код и верный результат дает, но "ничья" не может случиться с таким кодом, а следовательно мы ее не обрабатываем (так считает валидатор). При сравнении свойств котов нужно проверять значения на равенства между собой и если они равны, то возвращать ноль. При таком раскладе валидатор не ругается.
Timur Khasmamedov Уровень 14 Expert
26 января 2023
Да, забыли крайнее значение когда все равны.
Ivan Уровень 7 Expert
15 ноября 2022
Фигня какая-то! У меня

cat1.fight(cat2);
cat2.fight(cat1);
Причём первый кот максимально прокачан и сильный - в первом случае он побеждает, а во втором нет. Причём валидатор пропустил... Получается, тот кот, что в первом аргументе всегда побеждает:

 if (firstCat > secondCat) {
                System.out.println(cat1 + " " + "Wins!");
            }
            else if (secondCat > firstCat) {
                    System.out.println(cat2 + " " + "Wins!");
Но это неверно! Нужно же сравнивать по навыкам котов! Почему валидатор такой код пропустил????? И как сделать так, чтобы побеждал тот, кто по силе круче, а не тот, кто идёт первым аргументом???
Dmitry Уровень 26
29 ноября 2022
у тебя логика в коде неверная же
Ivan Уровень 7 Expert
29 ноября 2022
уже поправил)))
AMIGO_2022_11_09 Уровень 17
14 ноября 2022
Ты всё сможешь, всё в ТВОИХ руках! Не сдавайся анон!
Danil Lopatin Уровень 13
8 сентября 2022
Че за хрень, написал решение, валидацию не проходит, хотя все правильно. Посмотрел правильное решение - все так же только имена другие. Надо было блять передвинуть метод мейн с конца в самое начало...... что за тупое условие, о котором не было сказано!!!!!
11 сентября 2022
от перемены мест слагаемых сумма не меняется. где-то косячок) П.С. у меня мейн снизу - проблем нет