Skip to content

Conversation

@KamalSyu
Copy link
Owner

@KamalSyu KamalSyu commented Jul 5, 2025

Прошу проверить проектную работу №1 (Гонки) на ревью.
Написано консольное приложение, которое задает вопросы с консоли, считывает пользовательский ввод и в результате выводит победителя гонки.
В приложении есть три класса: Main, Race, Car.
Класс Car — содержит в себе параметры «название» и «скорость».
Класс Race – в данном классе рассчитывается и запоминается лидер гонок.
Main – в данном классе происходит считывание пользовательского ввода и коммуникация с остальными классами.

Буду благодарна, если отметите все недочеты, которые есть.

Copy link

@ArturNurtdinov ArturNurtdinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хорошая работа, молодец!

Comment on lines 15 to 32
public String getCarName() {
return carName;
}

// Метод для установки названия машины
public void setCarName(String carName) {
this.carName = carName;
}

// Метод для получения скорости машины
public int getRaceCar() {
return raceCar;
}

// Метод для установки скорости машины
public void setRaceCar(int raceCar) {
this.raceCar = raceCar;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Геттеры можно оставить, а вот сеттеры лучше удалить, чтобы сделать поля final

Comment on lines 2 to 3
String carName;
int raceCar;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поля лучше пометить final, тем самым исключив возможность их модификации извне

Comment on lines +9 to +12
public Car() {
this.carName = "";
this.raceCar = 0;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

этот конструктор особо не имеет смысла, поэтому лучше удалить

Scanner scanner = new Scanner(System.in);
Race race = new Race();

Car[] cars = new Car[3];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

От хранения массива машин и лишнего цикла при определении победителя можно избавиться, если при вводе данных сразу вычислять победителя и хранить его в отдельной переменной, тогда программа будет требовать меньше памяти и работать быстрее

if (winners.size() == 1) {
System.out.println("Наш победитель - самая быстрая машина: " + winners.get(0));
} else {
System.out.print("Победителей несколько - самые быстрые машины: ");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

От логики с несколькими победителями можно избавиться, чтобы не хранить целый список, можно просто последнего введённого победителя запоминать (одну машину)

System.out.println("Введите скорость " + (i + 1) + " автомобиля (не больше 250 и не меньше 1)");
try {
int speed = scanner.nextInt();
if (speed > 0 && speed <= 250) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Минимальную и максимальную скорости лучше вынести в константы для повышения читабельности кода

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants