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()    // ստատիկ մեթոդի կանչ

Հիմնական տարբերությունը — այն մակարդակն է, որտեղ աշխատում է մեթոդը՝ նմուշ, դաս կամ ստատիկ (չի կարող վերագրել) մեթոդ։