〰️
Programming with Java
  • Програмиране с JAVA
  • Обектно-ориентирано програмиране - 1 част
    • Лабораторно упражнение 1
      • Основи на програмирането с Java за начинаещи‎
        • Oбщи термини в Java
        • Основни характеристики на JAVA‎
        • Инсталиране на JDK
        • Инсталиране на Intellij
      • Първа програма в Java
      • Системен изход в JAVA
      • Дефиниране на променливи
      • Примитивни типове данни
      • Оператори
      • If-else
      • Switch-Case
      • For loop
      • While loop
      • Do-while loop
      • Continue
      • Break
      • Задачи
    • Лабораторно упражнение 2
      • Клас
      • Обект
      • Ключова дума new
      • Запазена дума static
      • Конвенции за именуване в Java
      • Wrapper Class
      • Сравняване на
      • Нуждата Wrapper Class
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 3
      • Наследяване
      • this и super
      • Модификатори за достъп
      • Капсулиране
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 4
      • Проследяване на грешки
      • Оценяване на изрази
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 5
      • Полиморфизъм
      • Абстрактен клас
      • Интерфейс
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 6
      • Разлика между Абстрактен клас и Интерфейс
        • Разлика 1
        • Разлика 2
        • Разлика 3
        • Разлика 4
        • Разлика 5
        • Разлика 6
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 7
      • String
      • Enum
      • Обработка на изключения
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 8
      • Генерични класове
      • Генеричен метод
      • Параметри на типа в Java Generics
      • Предимства на генериците
      • Генериците работят само с референтни типове
    • Лабораторно упражнение 9
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 10
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 11
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 12
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 13
      • Упражнения за извънаудиторна заетост
      • Упражнения за извънаудиторна заетост
  • Обектно-ориентирано програмиране - 2 част
    • Лабораторно упражнение 1
      • SRP - Single Responsibility Principle
        • Задачи
      • OCP - Open-Closed Principle
        • Задачи
    • Лабораторно упражнение 2
      • LSP - Liskov Substitution Principle
        • Задачи
      • ISP - Interface Segregation Principle
        • Задачи
      • DI - Dependency Inversion Principle
        • Задачи
    • Лабораторно упражнение 3
      • Singleton
        • Задачи
      • Builder
        • Задачи
    • Лабораторно упражнение 4
      • Factory Method
      • Abstract Factory
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Decorator
      • Bridge
        • Композиция
      • Задачи
    • Лабораторно упражнение 7
      • Adapter
      • Задачи
    • Лабораторно упражнение 8
      • Composite
      • Proxy
      • Задачи
    • Лабораторно упражнение 9
    • Лабораторно упражнение 10
      • Visitor
      • State
      • Задачи
    • Лабораторно упражнение 11
      • Observer
      • Задачи
    • Лабораторно упражнение 12
      • Chain of Responsibility
      • Command
      • Задачи
    • Лабораторно упражнение 13
  • Интернет технологии 2023
    • Лабораторно упражнение 1
      • HTTP протокол
        • Синтаксис на URL
        • HTTP съобщения
        • Методи за HTTP заявка
        • Кодове за състояние на HTTP отговор
      • Postman
        • Изпращане на заявка с Postman
        • Получаване на отговор
      • Задачи за работа с Postman
    • Лабораторно упражнение 2
      • Работа с Tomcat
      • Maven
      • Създаване на Maven проект в IntelliJ Ultimate Edition
      • Създаване на Maven проект в IntelliJ Community Edition
      • Създаване на Maven проект в Eclipse IDE
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи за създаване на сървлети
    • Лабораторно упражнение 4
      • Extensible Markup Language
      • Java Architecture for XML Binding
      • JavaScript Object Notation
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Spring Boot
      • Създаване на Spring boot проект
      • Структура на Spring Boot проект
        • Файлът pom.xml
        • Main клас в Spring Boot
        • Управление на конфигурацията с application.properties
      • Задача
    • Лабораторно упражнение 7
      • Комуникационен поток и CRUD операции
      • ResponseEntity
      • Избрани анотации
      • Задача
    • Лабораторно упражнение 8
      • Lombok
      • Data transfer object (DTO)
      • Обработване на изключения в Spring Boot приложение
        • Клас Optional<T>
      • Валидиране на данните от заявката
      • Задачи
    • Лабораторно упражнение 9-10
      • Конфигуриране на PostgreSQL DB
      • Jakarta Persistence анотации
      • Repository слой
      • Задачи
    • Лабораторно упражнение 11
      • Проследяване на сесии
      • Филтри и FilterChain
      • Spring Security
        • Добавяне на Spring Security в Spring Boot приложение
        • Конфигуриране на филтри
        • Удостоверяване със Spring Security
        • Защита на метод със Spring Security
      • Задача
    • Лабораторно упражнение 12
      • JSON Web Token
      • Защита с помощта на JWT
      • Задача
    • Лабораторно упражнение 13
  • Програмиране за мобилни и Интернет устройства
    • Лабораторно упражнение 1
      • Задачи
    • Лабораторно упражнение 2
      • Среда за разработване
        • Създаване на проект
        • Структора на проект
        • Виртуално устройство с Android OS
      • Задача
    • Лабораторно упражнение 3
      • Activity
      • Layout
        • XML описание
      • Задача
    • Лабораторно упражнение 4
      • Activity Lifecycle
      • Intent
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 5
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 6
      • Фрагменти
      • DialogFragment
      • Задача
    • Лабораторно упражнение 7
      • Примери
        • BaseAdapter
        • ArrayAdapter
        • Custom ArrayAdapter
      • RecyclerView
        • Пример
      • CardView
      • Задача
    • Лабораторно упражнение 8
      • Runnable
      • HandlerThread
      • ThreadPoolExecutor
      • Задача
    • Лабораторно упражнение 9
      • Задача
      • Задача
      • Пример
  • Интернет Технологии
    • Лабораторно упражнение 1
      • Инсталиране и настройка на необходимата среда за работа в упражненията
      • Maven
      • Създаване на Maven проект в Eclipse IDE
      • Създаване на Maven проект в IntelliJ
      • Работа с Tomcat
      • Задача
    • Лабораторно упражнение 2
      • HTML форми
      • Cascading Style Sheets (CSS)
        • CSS селектори
        • Някои CSS свойства
      • Задача
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи
    • Лабораторно упражнение 4
      • Java Server Pages технология. Същност и детайли
      • Пренасочване между Servlet и JSP
      • Задачи
    • Лабораторно упражение 5
      • Build pattern
      • JavaBean
      • Задачи
    • Лабораторно упражение 6
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Задачи
    • Лабораторно упражнение 7
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Servlet Filter
      • Задачи
    • Лабораторно упражнение 8
      • Servlet Filter
      • Прихващане на грешки
      • Задачи
    • Лабораторно упражнение 9
      • Extensible Markup Language
      • JavaScript Object Notation
        • Fetch
      • Задача
    • Лабораторно упражнение 10
      • Java Architecture for XML Binding
      • Задачи
Powered by GitBook
On this page
  • Задача 1
  • Задача 2
  • Задача 3

Was this helpful?

  1. Обектно-ориентирано програмиране - 1 част
  2. Лабораторно упражнение 7

Упражнения за извънаудиторна заетост

Задача 1

Създаите програма за служителите в една фирма.

За целта ще имате нужда от:

  • клас Служител, който да описва служител и неговите три имена, основна заплата и длъжност. Методи за достъп до полетата на класа. Метод за текстово представяне. (Пълното име на служителя)

  • клас Фирма, който да описва фирмата с нейните служители и имена. В конструктор който приема броя на служителите във фирмата, инициализирайте масива. Създайте два метода

    • getInfo() - който да връща като резултат информацията за фирмата със всички служители на фирмат. Използвайте конкатенация на стрингове

    • getInformation() - който да връща като резултат информацията за фирмата със всички служители на фирмат. Използвайте стрин буфер

    • getEmployees(String name) - Връща списък от имената на служителите, в койтро съществува подаденоето име

Проверете изпълнението на методите за различен брой служители във фирмата с System.out.println(java.time.LocalDateTime.now()); в началото и края на изпълнение на методите има ли разлика между String и StringBuilder?

Задача 2

Съставете програма за автомобилен паркиинг:

За целта ще имате нужда от:

  • клас Автомобил с номер, ширина и дължина

  • клас Камион с номер, ширина и дължина, товаро носимост

  • клас Автобус с номер, ширина и дължина, брой седящи места

Могат ли класовете да имат общ родителски клас?

  • клас паркинг, със списък от 1000 превозни средства.

  • конструктор, който приема входен параметър, форматиран стринг

    • Car:В4747КК,4,6;Truck:В4747КК,4,6,3;Bus:В4747КК,4,6,59

    • Разбелете стринга и за всеки тип превозно средство създайте обект в масива

  • Текстово представяне на паркинга, използвайте конкатениране на стринг или стринг буфер, в зависимост от това кой се е представил по добрре в първата задача

Задача 3

Направете система за блог, за целта ще се нуждаете от:

Клас редакция (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 с различни автори и да се добавят, статии от двамата автори и коментари за тези статии. Обработете изключенията, като извеждате съобщенията за грешка в конзолата.

PreviousОбработка на изключенияNextЛабораторно упражнение 8

Last updated 2 years ago

Was this helpful?