Repository navigation
First check solution - #1
Secur1ty-21 wants to merge 4 commits into
Conversation
| public static void main(String[] args) { | ||
| Scanner scanner = new Scanner(System.in); | ||
| int numOfPeople = getNumOfPeople(); // Колисчестов людей в компании. | ||
| Calculator calculator = new Calculator(); // Модель хранения продуктов. |
There was a problem hiding this comment.
В комментарии написано "Модель хранения продуктов", а класс называется Calculator, это может запутать людей которые читают код
| try { | ||
| numOfPeople = Integer.parseInt(scanner.nextLine()); // Перехватываем вылет, если пользователь ввел не число | ||
| } catch (NumberFormatException e) { | ||
| numOfPeople = 0; |
There was a problem hiding this comment.
В данном случае если пользователь введет строку "два", то он получит ошибку "Неправильный ввод! Количество человек должно быть > 1, попробуйте ввести еще раз."
Что не совсем однозначно в данной ситуации, возможно стоит в случае ввода не числа выводить другую ошибку?
| try { | ||
| numOfPeople = Integer.parseInt(scanner.nextLine()); // Перехватываем вылет, если пользователь ввел не число | ||
| } catch (NumberFormatException e) { | ||
| numOfPeople = 0; | ||
| } |
There was a problem hiding this comment.
Тут повторяется код, который написан в 22 - 26 строках
Что бы не повторять одинаковые части кода их можно вынести в функции и вызывать их.
| public class Calculator { | ||
| private float totalAmount; | ||
| // Не Map с сохранением цены т.к. в сохранении цены кажого товора нет необходимости по заданию. | ||
| private final List<String> products; |
There was a problem hiding this comment.
Может быть, но насколько помню final позволяет сохранять 1 байт памяти. А присвоение нового инстанца функциональность класса не подразумевает, меняется только внутреннее состояние объекта . Или вопрос в том, что предпочитается помечать final только числовые и текстовые константы, которые явно для этого созданы, чтобы потом не наткнуться на штыки final у своего объекта?
There was a problem hiding this comment.
Вообще ты прав, принято накладывать максимально возможные ограничения на объект, а уже если в дальнейшем понадобиться то их можно ослабить
There was a problem hiding this comment.
Понял, спасибо за пояснения!
1.Если возникнут проблемы с отображением кириллицы в консоли, то вот что мне помогло:
Что бы исправить Help menu -> Edit Custom VM Options
добавляем в конец
-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8
Перезаходим в студию.
2.Так же реализовал несколько способ ввода для добавления товара т.к. не совсем точно составлено тз
1-й способ Ввод через 2 строки (имя отдельно, цену отдельно)
2-й способ Ввод через одну строку (имя и цена вводиться в одну строку, при этом имя должно быть обернуто в одинарные кавычки)