Comment distinguer les méthodes d'instance, les méthodes de classe et les méthodes statiques en programmation orientée objet?
sobes.tech IA
Réponse de l'IA
En programmation orientée objet, les méthodes sont divisées en trois types:
-
Méthodes d'instance — fonctionnent avec un objet spécifique de la classe. Elles ont accès aux propriétés et autres méthodes de cet objet via
self(en Swift) outhis(dans d'autres langages). Elles sont appelées sur une instance de la classe. -
Méthodes de classe — sont liées à la classe elle-même, pas à un objet spécifique. En Swift, elles sont déclarées avec le mot-clé
class func. Ces méthodes peuvent accéder aux propriétés de la classe (statiques), mais pas à celles d'une instance particulière. -
Méthodes statiques — ressemblent aux méthodes de classe, mais ne peuvent pas être redéfinies dans des sous-classes. En Swift, elles sont déclarées avec
static func. Elles fonctionnent également au niveau de la classe, sans accès à une instance.
Exemple en Swift:
class Example {
var value: Int = 0
func instanceMethod() {
print("Ceci est une méthode d'instance, value = \(value)")
}
class func classMethod() {
print("Ceci est une méthode de classe")
}
static func staticMethod() {
print("Ceci est une méthode statique")
}
}
let obj = Example()
obj.instanceMethod() // appel de la méthode d'instance
Example.classMethod() // appel de la méthode de classe
Example.staticMethod() // appel de la méthode statique
Ainsi, la principale différence réside dans le niveau auquel le méthode opère : instance, classe ou méthode statique (non redéfinissable).