Wie unterscheidet man in der objektorientierten Programmierung Instanzmethoden, Klassenmethoden und statische Methoden?
sobes.tech KI
Antwort von AI
In der objektorientierten Programmierung werden Methoden in drei Typen unterteilt:
-
Instanzmethoden — arbeiten mit einem bestimmten Objekt der Klasse. Sie haben Zugriff auf die Eigenschaften und andere Methoden dieses Objekts über
self(in Swift) oderthis(in anderen Sprachen). Sie werden auf einer Instanz der Klasse aufgerufen. -
Klassmethoden — sind mit der Klasse selbst verbunden, nicht mit einem bestimmten Objekt. In Swift werden sie mit dem Schlüsselwort
class funcdeklariert. Solche Methoden können auf die Eigenschaften der Klasse (statische) zugreifen, aber nicht auf die Eigenschaften einer konkreten Instanz. -
Statische Methoden — ähneln den Klassmethoden, können aber in Unterklassen nicht überschrieben werden. In Swift werden sie mit
static funcdeklariert. Sie arbeiten ebenfalls auf Klassenebene, ohne Zugriff auf eine Instanz.
Beispiel in Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Dies ist eine Instanzmethode, value = \(value)")
}
class func classMethod() {
print("Dies ist eine Klassenmethode")
}
static func staticMethod() {
print("Dies ist eine statische Methode")
}
}
let obj = Example()
obj.instanceMethod() // Aufruf der Instanzmethode
Example.classMethod() // Aufruf der Klassenmethode
Example.staticMethod() // Aufruf der statischen Methode
Der Hauptunterschied liegt also im Level, auf dem die Methode arbeitet: Instanz, Klasse oder statische (nicht überschreibbare) Methode.