〰️
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

Was this helpful?

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

Клас

Клас в ООП наричаме описание на даден клас обекти от заобикалящия ни свят. Класът представлява шаблон, който описва видо­вете състояния и поведението на конкретните обекти, които биват създа­вани от този клас. Класовете често представят обширни категории, които споделят общи характеристики.

Класът в ООП дефинира нов тип данни.Те дефинират какви атрибути ще имат инстанциите от този тип, но не и стойностите на тези атрибути за определен обект. Класовете могат да съдържат също функции, които се наричат методи и са достъпни само за обекти от този тип. Тези методи се дефинират в класа и извършват действие.

Декларацията на клас включва.

  1. Декларация на класа (class) - започва с запазената дума class.

  2. Идентификатор на класа - Името трябва да започне с главнa букви, когато са повече от една дума те се записват слято.

  3. Тяло - по подобие на методите, класовете също имат част, която следва декларацията им, оградена с фигурни скоби – "{" и "}" между които се намира съдържанието на класа.

class Dog {
    // Тяло на класа
}

Свойства (атрибути)

Атрибутитe са променливи, които осигуряват състоянието на класа и неговите обекти, и се използват в методи. Също се наричат член-променливи.

class Dog {
    // Полета на класа
    String name;
    String breed;
    int age;
    String color;
}

Конструктор

Конструкторите се използват за инициализиране на нови обекти.

Представлява специален вид метод, с който се инициализират нови обекти от този клас. Конструктора се извиква, когато се създава нов обект от този клас.

Изисквания към конструктора:

  • Името му да съвпада с името на класа;

  • Няма тип на връщания резултат;

  • Може да приема аргументи, може и да не приема.

Видове конструктори:

Конструктор по подразбиране, не приема параметри инициализира член-променливите със стойности по подразбиране. В един клас може да има само един конструктор по подразбиране.

class Dog {
    // Полета на класа
    String name;
    String breed;
    int age;
    String color;
 
    // Конструктор за деклариране на клас
    public Dog() {
        this.name = "Брзименно";
        this.breed = "куче";
        this.age = 0;
        this.color = "черно";
    }
}

Параметризиран конструктор, приема параметри и инициализира член-променливите със определени стойности. . В един клас може да има повече от един параметризиран конструктор.

class Dog {
    // Полета на класа
    String name;
    String breed;
    int age;
    String color;
 
    // Конструктор за деклариране на клас
    public Dog(String name, String breed, int age, String color) {
        this.name = name;
        this.breed = breed;
        this.age = age;
        this.color = color;
    }
}

Ако изрично не напишем конструктор Java си създава по подразбиране конструктор за всеки клас – той е без параметри(default constructor). Ако създадем какъвто и да е друг конструктор, то този по подразбиране вече не съществува!

Поведение (Методи)

Методите дефинират поведението на класа и неговите обекти

  • Методи за достъп - служат за достъп до полетата на класа

  • метод за четене – getter: Този метод връща стойността на конкретния атрибут

class Dog {
    // Полета на класа
    String name;
    String breed;
    int age;
    String color;
 
    // Конструктор за деклариране на клас
    public Dog(String name, String breed, int age, String color) {
        this.name = name;
        this.breed = breed;
        this.age = age;
        this.color = color;
    }
 
    // метод за извличане стойноста на променливата name
    public String getName() {
        return name;
    }
 
    // метод за извличане стойноста на променливата breed
    public String getBreed(){
        return breed;
    }
 
    // метод за извличане стойноста на променливата age
    public int getAge() {
        return age;
    }
 
    // метод за извличане стойноста на променливата color
    public String getColor() {
        return color;
    }
}
  • метод за запис – setter: променя стойността на даден атрибут чрез параметър.

class Dog {
    // Полета на класа
    String name;
    String breed;
    int age;
    String color;
 
    // Конструктор за деклариране на клас
    public Dog(String name, String breed, int age, String color) {
        this.name = name;
        this.breed = breed;
        this.age = age;
        this.color = color;
    }
 
    // метод за присвояване на стойност на променливата name
    public void setName(String name) {
        this.name = name;
    }
 
    // метод за присвояване на стойност на променливата breed
    public void setBreed(String breed) {
       this.breed = breed;
    }
 
    // метод за присвояване на стойност на променливата age
    public void setAge(int age) {
        this.age = age;
    }
 
    // метод за присвояване на стойност на променливата color
    public void setColor(String color) {
        this.color = color;
    }
}

Метода toString()

Ако искаме да представим, обект като текст използваме метода toString(), той връща текстова интерпретация на обекта. Чрез пренаписване на метода toString() получаваме исканата имплементация.

public String toString() {
 return ("Моето име е "+ this.getName()+
        ".\nМоята порода, години и цвят са " +
        this.getBreed()+"," + this.getAge()+
        ","+ this.getColor());
}
  • equals - метода е стандартен метод в Java и обектно-ориентираната парадигма. Той служи за сравняване стойностите на обектите от дефиницията на класа

public boolean equals(Object o) {
    if (this == o) return true;
    Dog dog = (Dog) o;
    return breed.equals(dog.breed);
}

PreviousЛабораторно упражнение 2NextОбект

Last updated 2 years ago

Was this helpful?