Sobes.tech
Junior — Middle

Объектке багытталган программалоодо мисал ыкмаларын, класс ыкмаларын жана статикалык ыкмаларды кантип айырмалоо керек?

sobes.tech AI

AIден жооп

Объектке багытталган программалоодо, ыкмалар үч түргө бөлүнөт:

  • Нускамалык ыкмалар — конкреттүү класс объектисине иштейт. Алар self (Swiftте) же this (башка тилдерде) аркылуу ошол объекттин мүнөздөмөлөрүнө жана башка ыкмаларга кирүүгө мүмкүнчүлүк берет. Алар класс нускамасында чакырылат.

  • Класс ыкмалары — өзү менен байланыштуу, конкреттүү объект менен эмес. Swiftте алар class func ачкыч сөзү менен жарыяланат. Бул ыкмалар класс (статикалык) мүнөздөмөлөргө кире алат, бирок конкреттүү нускаманын мүнөздөмөлөрүнө эмес.

  • Статикалык ыкмалар — класс ыкмаларына окшош, бирок подклассларда кайра жазылбайт. Swiftте алар static func менен жарыяланат. Алар класс деңгээлинде иштейт, нускамасыз.

Swiftте мисал:

class Example {
    var value: Int = 0

    func instanceMethod() {
        print("Бул нускамалык ыкма, value = \(value)")
    }

    class func classMethod() {
        print("Бул класс ыкмасы")
    }

    static func staticMethod() {
        print("Бул статикалык ыкма")
    }
}

let obj = Example()
obj.instanceMethod()      // нускамалык ыкманы чакыруу
Example.classMethod()     // класс ыкмасын чакыруу
Example.staticMethod()    // статикалык ыкманы чакыруу

Негизги айырма — ыкма иштеген деңгээл: нускам, класс же статикалык (кайра жазылбаган) ыкма.