Kaip atskirti objekto orientuoto programavimo metodus: metodo pavyzdį, klasės metodą ir statinį metodą?
sobes.tech AI
Atsakymas iš AI
Objektų orientuoto programavimo metu metodai skirstomi į tris tipus:
-
Pavyzdiniai metodai — dirba su konkrečiu klasės objektu. Jie turi prieigą prie šio objekto savybių ir kitų metodų per
self(Swift) arbathis(kitose kalbose). Jie kviečiami klasės pavyzdyje. -
Klasės metodai — susiję su pačia klase, o ne su konkrečiu objektu. Swift juos deklaruoja su
class funcraktiniu žodžiu. Šie metodai gali pasiekti klasės (statines) savybes, bet ne konkretaus pavyzdžio. -
Statiniai metodai — panašūs į klasės metodus, bet negali būti perrašyti pogrupuose. Swift juos deklaruoja su
static func. Jie veikia klasės lygyje, be prieigos prie pavyzdžio.
Pavyzdys Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Tai yra pavyzdinis metodas, value = \(value)")
}
class func classMethod() {
print("Tai yra klasės metodas")
}
static func staticMethod() {
print("Tai yra statinis metodas")
}
}
let obj = Example()
obj.instanceMethod() // pavyzdinio metodo iškvietimas
Example.classMethod() // klasės metodo iškvietimas
Example.staticMethod() // statinio metodo iškvietimas
Taigi, pagrindinis skirtumas — tai lygis, kuriame veikia metodas: pavyzdys, klasė ar statinis (perrašyti negalima) metodas.