Sobes.tech
Junior — Middle

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õi this (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 func abil. 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.