Kuidas eristada objektorienteeritud programmeerimises näidismetodit, klassi meetodit ja staatilist meetodit?
sobes.tech AI
Vastus AI-lt
Objektorienteeritud programmeerimises jagunevad meetodid kolme tüüpi:
-
Näidismetodid — töötavad konkreetse klassi objektiga. Neil on juurdepääs selle objekti omadustele ja teistele meetoditele
self(Swiftis) võithis(teistes keeltes) kaudu. Neid kutsutakse klassi näidise peal. -
Klassimeetodid — on seotud iseenda klassiga, mitte konkreetse objekti. Swiftis deklareeritakse need võtmesõnaga
class func. Need meetodid saavad ligi klassi (statistilistele) omadustele, kuid mitte konkreetse näidise omadustele. -
Staatilised meetodid — sarnased klassimeetoditega, kuid neid ei saa alamsklasides üle kirjutada. Swiftis deklareeritakse need
static funcabil. Need töötavad klassi tasandil, ilma näidise ligipääsuta.
Näide Swiftis:
class Example {
var value: Int = 0
func instanceMethod() {
print("See on näidismetod, value = \(value)")
}
class func classMethod() {
print("See on klassimeetod")
}
static func staticMethod() {
print("See on staatiline meetod")
}
}
let obj = Example()
obj.instanceMethod() // näidismetodi kutsumine
Example.classMethod() // klassimeetodi kutsumine
Example.staticMethod() // staatilise meetodi kutsumine
Seega, peamine erinevus on tasand, millel meetod töötab: näidis, klass või staatiline (ülekirjutamatu) meetod.