Клас

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

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

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

  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);
}

Last updated