Hoe onderscheid je in objectgeoriënteerd programmeren instantie-methoden, klasse-methoden en statische methoden?
sobes.tech AI
Antwoord van AI
In objectgeoriënteerd programmeren worden methoden onderverdeeld in drie typen:
-
Instantie-methoden — werken met een specifiek object van de klasse. Ze hebben toegang tot de eigenschappen en andere methoden van dat object via
self(in Swift) ofthis(in andere talen). Ze worden aangeroepen op een instantie van de klasse. -
Klasse-methoden — zijn gerelateerd aan de klasse zelf, niet aan een specifiek object. In Swift worden ze gedeclareerd met het sleutelwoord
class func. Deze methoden kunnen toegang krijgen tot de eigenschappen van de klasse (statisch), maar niet tot die van een concreet object. -
Statische methoden — lijken op klasse-methoden, maar kunnen niet worden overschreven in subklassen. In Swift worden ze gedeclareerd met
static func. Ze werken op klasse-niveau, zonder toegang tot een instantie.
Voorbeeld in Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Dit is een instantie-methode, value = \(value)")
}
class func classMethod() {
print("Dit is een klasse-methode")
}
static func staticMethod() {
print("Dit is een statische methode")
}
}
let obj = Example()
obj.instanceMethod() // aanroep van instantie-methode
Example.classMethod() // aanroep van klasse-methode
Example.staticMethod() // aanroep van statische methode
Dus, het belangrijkste verschil ligt in het niveau waarop de methode werkt: instantie, klasse of statisch (niet overschrijfbaar).