Sobes.tech
Junior

Proqramlaşdırmada metodların yüklənməsində nə dəyişdirilə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

Yöntəm çoxaltması zamanı (method overloading) aşağıdakıları dəyişdirmək mümkündür:

  • Parametrlərin sayı: Eyni adda metodlar müxtəlif sayda formal parametrlərə malik ola bilər.
  • Parametrlərin növləri: Eyni adda və eyni sayda parametrlərə malik metodlar bu parametrlərin növləri ilə fərqlənə bilər.
  • Parametrlərin növlərinin ardıcıllığı: Əgər metodların parametrlərinin sayı və növləri eynidirsə, lakin onlar fərqli ardıcıllıqda yerləşibsə, bu da çoxaltma sayılır.

Java nümunəsi:

// Çoxaltılmış metodlara malik sinif
class Calculator {

    // İki tam ədədin cəmi metodu
    public int add(int a, int b) {
        return a + b;
    }

    // Çoxaltılmış metod: üç tam ədədin cəmi
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Çoxaltılmış metod: ondalıklı ədədlərin cəmi
    public double add(double a, double b) {
        return a + b;
    }

    // Çoxaltılmış metod: tam ədəd və ondalıklı ədədin cəmi
    public double add(int a, double b) {
        return a + b;
    }

    // Çoxaltılmış metod: ondalıklı ədəd və tam ədədin cəmi
    public double add(double a, int b) {
        return a + b;
    }
}

Yaxınlaşdırıla bilməyən hallar:

  • Qaytarma növü: Eyni adda və eyni imzaya (sayı, növlər və ardıcıllıq) malik iki metod yalnız qaytarma növü ilə fərqlənə bilməz.
  • Giriş modifikatorları: Giriş modifikatorları (public, private, protected, default) çoxaltmaya təsir etmir.
  • static açar sözünün mövcudluğu və ya olmaması: Statik metod çoxaltıla bilməz; eyni imzaya malik qeyri-statik metod təyin etməklə və ya əksinə, çoxaltma mümkün deyil.
  • Metodun istisna siyahısı: İstisna siyahısı metodun imzasına daxil deyil və çoxaltma zamanı nəzərə alınmır.

Çoxaltma və üst-üstə qoyma metodlarının müqayisəsi:

Xüsusiyyət Çoxaltma (Overloading) Üst-üstə qoyma (Overriding)
Harada baş verir Eyni sinifdə və ya siniflər hiyerarşisində Törəmə sinifdə
Metodun adı Eyni Eyni
Metodun imzası Fərqli (sayı, növlər, ardıcıllıq) Eyni
Qaytarma növü Fərqli ola bilər (yalnız fərq deyil) Eyni və ya kovarianta (obyektlər üçün)
Məqsəd Müxtəlif tiplər və ya arqumentlərin sayı üçün bir əməliyyatın müxtəlif variantlarını təqdim etmək Törəmə sinifdə miras alınmış metodun davranışını dəyişmək
Metodlar arasındakı əlaqə Müstəqil metodlar "Məxsus" əlaqə (miras alınması)
Polimorfizm Kompilyasiya mərhələsində (statik) İcrada mərhələsində (dinamik)