Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Nbonev avatar Nbonev 5 Точки

Encapsulation - Exercises - 04. Shopping Spree

Здравейте,

Получавам 80/100 на 4-та задача от упражненията на Java OOP Basics. Разгледах различни отговори на подобен проблем, но преодължавам да не намирам конкретно при мен какъв е проблема. Ще съм благодарен, ако някой има време да погледне.

https://github.com/NinoBonev/SoftUni/tree/master/JavaFundamentalsMay2018/Java%20OOP%20Basics/02.%20ENCAPSULATION%20-%20EXERCISES/04.%20Shopping%20Spree/p04_ShoppingSpree

Тагове:
0
Java OOP Basics
Ivelin_Dimitrov avatar Ivelin_Dimitrov 148 Точки

първото което забелязах без да съм дебъгвал е, че във Product за setCost трябва да имаш проверка за парите също -> 

if (cost < 0) {
    throw new IllegalArgumentException("Money cannot be negative");
}

и проверката за имената проверявай винаги първо дали не е null защото String е нулабъл -> 

if (name == null || name.trim().isEmpty()) {
    throw new IllegalArgumentException("Name cannot be empty");
}

Във class Main 1. махни try {...} catch {...} блоковете от всякъде. След това, след декларирането на двата Map<> огради всичко останало във един try {...} catch {...} за да може, ако получиш невалидни данни за People или за Product - да ти изпечата съобщението от грешката и да ти прекъсне изпълнението на програмата на цяло. Вътре трябва да има само един try {...} catch {...} блок, който да огради единственно копуването на продуктите - като методъд buy() трябва да ти хвърля exception, защото не е добре да печаташ директно от класът както си го направил не принтирай от класа, има си принцип за това казава се Single Responsibility. 

0
22/06/2018 00:37:54
Nbonev avatar Nbonev 5 Точки

Благодаря много за помощта и обяснителният отговор. Много беше полезно :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.