Kā atšķirt objektorientētās programmēšanas metodes, piemēram, instances metodi, klases metodi un statisko metodi?
sobes.tech AI
Atbilde no AI
Objektorientētajā programmēšanā metodes iedala trīs veidos:
-
Instanču metodes — darbojas ar konkrētu klases objektu. Tām ir piekļuve šī objekta īpašībām un citām metodēm caur
self(Swift) vaithis(citos valodās). Tās tiek izsauktas uz klases instances. -
Klases metodes — ir saistītas ar pašu klasi, ne ar konkrētu objektu. Swift tās deklarē ar atslēgvārdu
class func. Šīs metodes var piekļūt klases (statiskajām) īpašībām, bet ne konkrētas instances īpašībām. -
Statiskās metodes — līdzīgas klases metodēm, bet tās nevar pārrakstīt apakšklasēs. Swift tās deklarē ar
static func. Tās darbojas klases līmenī, bez piekļuves instancē.
Piemērs Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Šī ir instanču metode, value = \(value)")
}
class func classMethod() {
print("Šī ir klases metode")
}
static func staticMethod() {
print("Šī ir statiska metode")
}
}
let obj = Example()
obj.instanceMethod() // instanču metodes izsaukums
Example.classMethod() // klases metodes izsaukums
Example.staticMethod() // statiskas metodes izsaukums
Tādējādi galvenā atšķirība ir līmenis, kurā darbojas metode: instancē, klasē vai statiskā (nepārrakstāma) metode.