Jak odróżnić metody instancji, metody klasy i metody statyczne w programowaniu obiektowym?
sobes.tech AI
Odpowiedź od AI
W programowaniu obiektowym metody dzielą się na trzy typy:
-
Metody instancji — działają na konkretnym obiekcie klasy. Mają dostęp do właściwości i innych metod tego obiektu przez
self(w Swift) lubthis(w innych językach). Wywoływane są na instancji klasy. -
Metody klasy — są związane z samą klasą, a nie z konkretnym obiektem. W Swift deklaruje się je za pomocą słowa kluczowego
class func. Takie metody mogą odwoływać się do właściwości klasy (statycznych), ale nie do właściwości konkretnego obiektu. -
Metody statyczne — podobne do metod klasy, ale nie mogą być nadpisywane w podklasach. W Swift deklaruje się je za pomocą
static func. Działają na poziomie klasy, bez dostępu do instancji.
Przykład w Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("To jest metoda instancji, value = \(value)")
}
class func classMethod() {
print("To jest metoda klasy")
}
static func staticMethod() {
print("To jest metoda statyczna")
}
}
let obj = Example()
obj.instanceMethod() // wywołanie metody instancji
Example.classMethod() // wywołanie metody klasy
Example.staticMethod() // wywołanie metody statycznej
Główna różnica polega na poziomie, na którym działa metoda: instancja, klasa lub metoda statyczna (nie można jej nadpisać).