Ako rozlíšiť metódy inštancie, metódy triedy a statické metódy v objektovo orientovanom programovaní?
sobes.tech AI
Odpoveď od AI
V objektovo orientovanom programovaní sú metódy rozdelené do troch typov:
-
Metódy inštancie — pracujú s konkrétnym objektom triedy. Majú prístup k vlastnostiam a ďalším metódam tohto objektu cez
self(v Swift) alebothis(v iných jazykoch). Volajú sa na inštancii triedy. -
Metódy triedy — sú spojené s samotnou triedou, nie s konkrétnym objektom. V Swift sú deklarované kľúčovým slovom
class func. Tieto metódy môžu pristupovať k vlastnostiam triedy (statickým), ale nie k vlastnostiam konkrétnej inštancie. -
Statické metódy — podobné metódam triedy, ale nemôžu byť prepísané v podtriedach. V Swift sú deklarované pomocou
static func. Fungujú na úrovni triedy, bez prístupu k inštancii.
Príklad v Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Toto je metóda inštancie, value = \(value)")
}
class func classMethod() {
print("Toto je metóda triedy")
}
static func staticMethod() {
print("Toto je statická metóda")
}
}
let obj = Example()
obj.instanceMethod() // volanie metódy inštancie
Example.classMethod() // volanie metódy triedy
Example.staticMethod() // volanie statickej metódy
Hlavný rozdiel je teda na úrovni, na ktorej metóda funguje: inštancia, trieda alebo statická (neprepísateľná) metóda.