როგორ განვსაზღვროთ ობიექტზე ორიენტირებულ პროგრამირებაში ინстанციის მეთოდები, კლასის მეთოდები და სტატიკური მეთოდები?
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() // სტატიკური მეთოდის გამოძახება
ამიტომ, მთავარი განსხვავება — ის დონეა, რომელზე მუშაობს მეთოდი: ინსტანცია, კლასი ან სტატიკური (გაუქმებელი) მეთოდი.