Sobes.tech
Junior

Obyekt yönümlü proqramlaşdırmada (OOP) abstraksiya nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada (OOP) abstraksiya, obyektin əsas xüsusiyyətlərinə diqqət yetirməyə imkan verən və qeyri-vacib tətbiq detalları gizlədən mexanizmdir. Bu, sistemin mürəkkəbliyini idarə etməyə kömək edir, obyektləri daxili strukturları yerinə davranış və qarşılıqlı əlaqə baxımından təqdim edir.

Abstraksiyanın əsas aspektləri:

  • Əsas xüsusiyyətlər və davranışların vurğulanması: Yalnız həll ediləcək tapşırıq üçün vacib olan xüsusiyyətlər təsvir edilir.
  • Tətbiq detalları gizlənir: Obyektin daxili quruluşu xarici dünyadan gizlidir.
  • Ümumi modellər yaradılır: Obyektlərlə ümumi interfeys vasitəsilə işləməyə imkan verir, onların konkret növündən asılı olmayaraq.

OOP dillərində tətbiq nümunələri:

  • Abstrakt siniflər: Birbaşa nümunə götürülə bilməyən siniflər. Onlar abstrakt metodlar içərə bilər və bunlar irsi siniflərdə həyata keçirilməlidir.

    // Shape abstrakt sinfi
    abstract class Shape {
        // Sahəni almaq üçün abstrakt metod
        abstract double getArea();
    
        // Adi metod
        void display() {
            System.out.println("Bu bir fiqurdur.");
        }
    }
    
  • İnterfeyslər: Tamamilə abstrakt tiplərdir və metodlar toplusunu tətbiq etmədən təyin edir. Bu, davranış müqaviləsini müəyyən etmək üçün istifadə olunur.

    // Interface ILogger
    public interface ILogger {
        // Mesajı qeyd etmək üçün metod
        void Log(string message);
    }
    
  • Giriş modifikatorlarının istifadəsi: private, protected, public sinif üzvlərinin görünürlüğünü və girişini idarə etməyə kömək edir, daxili detalları gizləyir.

Abstraksiya aşağıdakı üstünlükləri təmin edir:

  • Mürəkkəbliyi azaltmaq: Lazımsız detalları gizlədir, sistemi anlamağı sadələşdirir.
  • Əlçatanlığı artırmaq: Obeyektin daxili tətbiqini dəyişdirmək daha asandır, müqavilə qorunduğu şərtlə.
  • Kodun təkrar istifadəsi: Abstrakt siniflər və interfeislər ümumi həllər yaratmağa imkan verir.

QA kontekstində, abstraksiyanı anlamaq kömək edir:

  • Test ssenarilərini daha səmərəli planlaşdırmaq, davranışa fokuslanmaq və daxili logikaya yox.
  • Test olunan kodun strukturunu və komponentlər arasındakı qarşılıqlı əlaqə nöqtələrini daha yaxşı başa düşmək.
  • Daha etibarlı və saxlanması asan avtomatlaşdırılmış testlər hazırlamaq.