Repository navigation
Conversation
| this.dishesArr.add(dish); | ||
| } | ||
|
|
||
| public float getAmout(){ |
There was a problem hiding this comment.
Опечатка, должно быть Amount
nit
| import java.util.Objects; | ||
| import java.util.Scanner; | ||
|
|
||
| public class CalculateDishes { |
There was a problem hiding this comment.
Классы лучше называть существительными и функции глаголами. То есть, например, класс DishCalculator может иметь метод calculate()
| private ArrayList<Dish> dishesArr = new ArrayList<>(); | ||
|
|
||
| public ArrayList<Dish> getDishesArr() { | ||
| return dishesArr; | ||
| } |
There was a problem hiding this comment.
Здорово, что написал аксессор для для массива, молодец!
| public int getCountPeople() { | ||
| return this.countPeople; | ||
| } | ||
|
|
||
| public void setCountPeople(int countPeople) { | ||
| this.countPeople = countPeople; | ||
| } | ||
|
|
||
| public void addDish(Dish dish) { | ||
| this.dishesArr.add(dish); | ||
| } |
There was a problem hiding this comment.
Очень классно, что используешь ООП подход и хранишь состояние внутри класса и выставляешь только методы для работы с ним. Также здорово, что ты не используешь сканер внутри калькулятора, ввод должен быть отделён. Молодец!
| @Override | ||
| public String toString() { | ||
| String messenger = "Добавленные товары:\n"; | ||
| for (Dish dish : this.dishesArr){ | ||
| messenger = messenger + dish.getName() +'\n'; | ||
| } | ||
| return messenger; | ||
| } | ||
| } |
There was a problem hiding this comment.
Можно было бы сделать отдельной функцией, не toString. toString скорее используется чтобы показать какое-то внутреннее состояние объекта, например, для логов. Здесь же мы хотим получить текст конкретного форматирования для показа пользователю.
| } else { | ||
| try { | ||
| System.out.println("Ведите наименование блюда:"); | ||
| String dishName = new Scanner(System.in).nextLine().trim(); |
There was a problem hiding this comment.
Ты уже создал сканер выше и присвоил его к переменной, не очень понятно зачем здесь и далее ты создаёщь новый сканер на каждый запрос. Лучше иметь только один сканер в приложении.
| query = new Scanner(System.in).nextLine(); | ||
| } | ||
| } catch (NumberFormatException e) { | ||
| System.out.println("Некорректное цена, блюдо не был добавлен!"); |
There was a problem hiding this comment.
Опечатка: НекорректнАЯ цена, блюдо не былО добавленО!
nit
| else if (val%10==1) s="рубль"; | ||
| else if (new ArrayList<Integer>(Arrays.asList(2,3,4)).contains(val%10)) s="рубля"; | ||
| else s="рублей"; | ||
| System.out.println(String.format("Каждый из друзей должен заплатить %.2f %s", num, s)); |
There was a problem hiding this comment.
String.format() здесь лишний, println сам по себе работает как format.
| if (val>=5 && val%100<=20) s="рублей"; | ||
| else if (val%10==1) s="рубль"; | ||
| else if (new ArrayList<Integer>(Arrays.asList(2,3,4)).contains(val%10)) s="рубля"; | ||
| else s="рублей"; |
There was a problem hiding this comment.
Довольно запутанный алгоритм, можно сделать проще. И можно использовать switch вместо каскадного if-else. Но алгоритм работает, молодец!
| import java.util.ArrayList; | ||
| import java.util.Arrays; | ||
|
|
||
| public class printFormatRub { |
There was a problem hiding this comment.
Имена классов должны начинаться с большой буквы и писаться UpperCamelCase. И как я писал выше, лучше чтобы это было существительное. В данном случае можно назвать, например, RubFormatter.
No description provided.