Упражнения за извънаудиторна заетост
Задача
Направете система за блог, за целта ще се нуждаете от:
Клас редакция (Version), класът трябва да има полета за създател и редактирал, в който да се съхраняват имената на автор и имената на автор, който е направил редакция. Следвайте принципите за капсулация при създаването на обекти от класа.
Създайте клас за изключения, които възникват в класа Version (VersionException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка, катоп параметър на конструктора си.
Приложете класа за изключения VersionException при сетване на стойностио за полетата. Да се обработи нулева и празна стойност на полетата за създател и редактор, като се хвърля изключение с текст “Created by cannot be null” и “Modified by cannot be null”
Клас коментар (Comment), класът трябва да наследява Version и да има поле за съдържание. Следвайте принципите за капсулация при създаването на обекти от класа.
Създайте клас за изключения, които възникват в класа Comment (CommentException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка като параметър на конструктора си.
Приложете класа за изключения CommentException при сетване на стойностите за полетата. Да се обработи нулева и празна стойност на полетата, като се хвърля изключение с текст “Comment cannot be empty”.
Клас статия (Article), класът трябва да наследява Version и да има полета за заглавие, съдържание и масив от коментари до 50 коментара. Следвайте принципите за капсулация при създаването на обекти от класа.
Създайте клас за изключения, които възникват в класа Article (ArticleException). Класът за изключенията трябва да наследява базовия клас Exception и да прииема съобщение за грешка като параметър на конструктора си.
Приложете класа за изключения ArticleException при сетване на стойностите за полетата. Да се обработи нулева и празна стойност на полетата, като се хвърля изключение с текст “Article title cannot be empty”, “Article content cannot be empty”, “Comment cannot be null”.
Създайте клас Blog със статичен масив от 1000 статии и име на автор. Конструкторът приема името на автора като параметър и има:
- Метод за добавяне на статия, предава изключенията от класа Article
- Метод за добавяне на коментар, по заглавие на статия и коментар, ако няма такава статия да се хвърли изключение “Missing article”, и да се предадат изключенията от класа Comment
В main да се създадат два обекта Blog с различни автори и да се добавят статии от двамата автори и коментари за тези статии. Обработете изключенията, като извеждате съобщенията за грешка в конзолата.