Sobes.tech
Junior — Middle

Obyektga yo'naltirilgan dasturlashda instans usullari, sinf usullari va statik usullarni qanday ajratish mumkin?

sobes.tech AI

AIdan javob

Obyektga yo'naltirilgan dasturlashda, metodlar uch turga bo'linadi:

  • Nümunaviy metodlar — aniq bir sinf ob'ekti bilan ishlaydi. Ular self (Swiftda) yoki this (boshqa tillarda) orqali ushbu ob'ektning xususiyatlari va boshqa metodlariga kirishadi. Sinfning nümunasida chaqiriladi.

  • Sinf metodlari — o'zlari bilan bog'liq, aniq ob'ekti emas, sinf bilan bog'liq. Swiftda class func kalit so'zi bilan e'lon qilinadi. Bu metodlar sinfning (statik) xususiyatlariga kirishlari mumkin, ammo aniq ob'ekt xususiyatlariga emas.

  • Statik metodlar — sinf metodlariga o'xshash, ammo voris sinflarda qayta yozib bo'lmaydi. Swiftda static func bilan e'lon qilinadi. Ular sinf darajasida ishlaydi, ob'ektga kirishsiz.

Swiftda misol:

class Example {
    var value: Int = 0

    func instanceMethod() {
        print("Bu nümunaviy metod, value = \(value)")
    }

    class func classMethod() {
        print("Bu sinf metod")
    }

    static func staticMethod() {
        print("Bu statik metod")
    }
}

let obj = Example()
obj.instanceMethod()      // nümunaviy metod chaqiruvi
Example.classMethod()     // sinf metod chaqiruvi
Example.staticMethod()    // statik metod chaqiruvi

Shu bilan, asosiy farq — metodning ishlash darajasi: nümuna, sinf yoki statik (qayta yozib bo'lmaydigan) metod.