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()    // სტატიკური მეთოდის გამოძახება

ამიტომ, მთავარი განსხვავება — ის დონეა, რომელზე მუშაობს მეთოდი: ინსტანცია, კლასი ან სტატიკური (გაუქმებელი) მეთოდი.