Sobes.tech
Junior — Middle

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) arba this (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 func raktiniu ž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.