Sobes.tech
Junior

Программалоодо ыкмаларды ашыкча жүктөөдө эмне өзгөртүлүшү мүмкүн?

sobes.tech AI

AIден жооп

Method overloading учурунда (метод жүктөө) төмөнкүлөрдү өзгөртүүгө болот:

  • Параметрлердин саны: Бирдей аталыштагы методтор ар башка формалдык параметрлердин санын алууга мүмкүнчүлүк берет.
  • Параметрлердин түрлөрү: Бирдей аталыштагы жана бирдей параметрлердин саны бар методтор бул параметрлердин түрлөрү менен айырмаланышы мүмкүн.
  • Параметрлердин түрлөрүнүн тартиби: Эгер методтордун параметрлеринин саны жана түрлөрү бирдей болсо, бирок алар башка тартипте жайгашкан болсо, бул да жүктөө деп саналат.

Java мисалы:

// Жүктөлгөн методдор менен класс
class Calculator {

    // Эки бүтүн санды кошуу
    public int add(int a, int b) {
        return a + b;
    }

    // Жүктөлгөн метод: үч бүтүн санды кошуу
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Жүктөлгөн метод: эки ондолук санды кошуу
    public double add(double a, double b) {
        return a + b;
    }

    // Жүктөлгөн метод: бүтүн жана ондолук санды кошуу
    public double add(int a, double b) {
        return a + b;
    }

    // Жүктөлгөн метод: ондолук жана бүтүн санды кошуу
    public double add(double a, int b) {
        return a + b;
    }
}

Жүктөөдө өзгөртүлбөшү керек нерселер:

  • Кайтаруучу түрү: Бирдей аталыштагы жана бирдей сигнатурасы (саны, түрлөрү жана тартиби) бар эки метод кайтаруучу түрү менен гана айырмаланбайт.
  • Кирүү модификаторлору: Кирүү модификаторлору (public, private, protected, default) жүктөөгө таасир этпейт.
  • static сөзүнүн болушу же болбошу: Статикалык метод жүктөлбөйт, эгер ал бир эле сигнатура менен статикалык эмес метод менен аныкталса, же тескерисинче.
  • Чыгуу тизмеси: Чыгуу тизмеси методтун сигнатурасынын бир бөлүгү эмес жана жүктөөдө эске алынбайт.

Жүктөө жана кайра жазуу салыштыруу:

Өзгөчөлүк Жүктөө (Overloading) Кайта жазуу (Overriding)
Кайда болот Бир класста же класстар хиерархиясында Төмендеги класста
Метод аталышы Бирдей Бирдей
Метод сигнатурасы Ар түрдүү (саны, түрлөрү, тартиби) Бирдей
Кайтаруучу түрү Мүмкүн түрлөрү менен айырмаланат (бирок жалгыз айырма эмес) Бирдей же ковариант (объекттер үчүн)
Максаты Бир иштин ар түрдүү варианттарын берүү үчүн, ар түрдүү маалымат түрлөрү же аргументтердин саны үчүн Туураланган методдун жүрүм-турумун өзгөртүү
Методтордун ортосундагы байланыш Өз алдынча методдор "бар" байланыш (мурас алуу)
Полиморфизм Компиляция этабында полиморфизм (статикалык) Ишке ашыруучу этапта полиморфизм (динамикалык)