Sobes.tech
Junior — Middle

Hogyan különböztetjük meg az példánymódszereket, osztálymódszereket és statikus módszereket az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

Az objektumorientált programozásban a módszerek három típusra oszthatók:

  • Példánymódszerek — egy adott osztálypéldánnyal dolgoznak. Hozzáférnek az adott objektum tulajdonságaihoz és más módszereihez a self (Swiftben) vagy this (más nyelvekben) segítségével. Az osztály példányán hívják meg.

  • Osztálymódszerek — az osztállyal kapcsolatosak, nem egy konkrét példánnyal. Swiftben a class func kulcsszóval deklarálják. Ezek a módszerek hozzáférhetnek az osztály (statikus) tulajdonságaihoz, de nem egy konkrét példány tulajdonságaihoz.

  • Statikus módszerek — hasonlóak az osztálymódszerekhez, de nem írhatók felül alosztályokban. Swiftben a static func-ként deklarálják. Az osztály szintjén működnek, példány hozzáférése nélkül.

Példa Swiftben:

class Example {
    var value: Int = 0

    func instanceMethod() {
        print("Ez egy példánymódszer, value = \(value)")
    }

    class func classMethod() {
        print("Ez egy osztálymódszer")
    }

    static func staticMethod() {
        print("Ez egy statikus módszer")
    }
}

let obj = Example()
obj.instanceMethod()      // példánymódszer hívása
Example.classMethod()     // osztálymódszer hívása
Example.staticMethod()    // statikus módszer hívása

Így a fő különbség a működési szinten van: példány, osztály vagy statikus (felülírhatatlan) módszer.