Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada nümunə metodları, sinif metodları və statik metodları necə ayırd etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada metodlar üç növə bölünür:

  • Nümunə metodları — müəyyən bir sinif obyekti ilə işləyir. Onlar self (Swift-də) və ya this (digər dillərdə) vasitəsilə həmin obyektin xüsusiyyətlərinə və digər metodlarına çıxış əldə edir. Sinif nümunəsi üzərində çağırılır.

  • Sinif metodları — özləri ilə əlaqəlidir, müəyyən obyektlə deyil. Swift-də class func açar sözü ilə elan edilir. Bu metodlar sinifin (statik) xüsusiyyətlərinə çıxış edə bilər, amma konkret nümunənin xüsusiyyətlərinə yox.

  • Statik metodlar — sinif metodlarına bənzəyir, amma alt siniflərdə yenidən yaza bilməz. Swift-də static func ilə elan edilir. Sinif səviyyəsində işləyir, nümunəyə çıxış olmadan.

Swift-də nümunə:

class Example {
    var value: Int = 0

    func instanceMethod() {
        print("Bu nümunə metodudur, value = \(value)")
    }

    class func classMethod() {
        print("Bu sinif metodudur")
    }

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

let obj = Example()
obj.instanceMethod()      // nümunə metod çağırışı
Example.classMethod()     // sinif metod çağırışı
Example.staticMethod()    // statik metod çağırışı

Beləliklə, əsas fərq — metodun işlədiyi səviyyədir: nümunə, sinif və ya statik (yenidən yaza bilməyən) metod.