Sobes.tech
Middle

Metodların yüklənmə qaydaları haqqında danış.

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada (Method Overloading) metodların eyni sinifdə, lakin fərqli imzalarla təyin olunmasına imkan verir.

Metodların yüklənməsi üçün əsas qaydalar:

  1. İmzalar arasındakı fərq: Bir metodun imzası, metodun adı və onun parametrlərinin tiplərinin siyahısı ilə müəyyən edilir. Metodlar yüklənmiş sayılmaq üçün, onların imzaları fərqli olmalıdır.

    // Fərqli imza nümunələri
    void print(int i) { }
    void print(String s) { }
    void print(int i, String s) { }
    void print(String s, int i) { } // Parametrlərin sırasının fərqi
    
  2. Metodun adı eyni olmalıdır: Yüklənmiş metodlar eyni ada malik olmalıdır.

    // Düzgün yükləmə nümunəsi
    class Example {
        void process(int a) { }
        void process(double b) { }
    }
    
  3. Qaytarma tipi imzanın bir hissəsi deyil: Yalnız qaytarma tipini dəyişdirmək, metodların yüklənmiş olmasını təmin etmir. Kompilyator, parametrlərin imzaları eynidirsə, hansı metodun çağırılacağını ayıra bilməz.

    // Yükləmə deyil - tərtib xətası
    int calculate() { return 1; }
    String calculate() { return "error"; }
    
  4. Erişim modifikatorları və istisna spesifikatorları yüklənməyə təsir etmir: Eynilə qaytarma tipi kimi, yalnız erişim modifikatorlarını (public, private, protected, default) və atılan istisnaların siyahısını (throws) dəyişdirmək, yüklənməyə səbəb olmur.

    // Yükləmə deyil - tərtib xətası, parametrlərin imzaları eynidirsə
    public void doSomething() { }
    private void doSomething() { }
    
  5. Parametrlərin sırası əhəmiyyətlidir: Parametrlərin tiplərinin sırasını dəyişdirmək, imzaları fərqli edir.

    // Yüklənmişdir
    void setup(int width, int height) { }
    void setup(int height, String unit) { } // İkinci parametr fərqli
    void setup(String unit, int size) { } // Tip və sıralama fərqli
    
  6. Parametrlərin sayı əhəmiyyətlidir: Fərqli parametr sayılarına malik olmaq, fərqli imzalarla nəticələnir.

    // Yüklənmişdir
    void log(String message) { }
    void log(String message, int level) { }
    

Beləliklə, metod yüklənməsinin əsas faktoru, metodun imzasının unikal olmasıdır, bu da onun adı və parametrlərin (tiplər və sıralama) toplusu ilə müəyyən edilir.