Qu'est-ce qu'une méthode statique?
Une méthode de programmation informatique orientée objet qui est déclarée dans une classe mais ne dépend d'aucune instanciation particulière de cette classe est appelée méthode statique. La plupart des langages de programmation incluent le mot clé static dans la déclaration d'une méthode pour rendre une méthode statique. Ces méthodes appartiennent strictement à la classe dans laquelle elles sont contenues et non à un objet instancié à partir de cette classe. Ils sont souvent appelés méthodes de classe .
Le nom littéral de la classe est normalement utilisé pour accéder à une méthode statique au lieu de s'y référer avec le nom d'un objet instancié. Il est permis en Java d'utiliser des noms d'objet pour faire référence à ces méthodes, mais cela est fortement déconseillé. Si un nom d'objet est utilisé, une personne lisant le code peut confondre l'une de ces méthodes avec une méthode d'instance.
Les méthodes statiques sont souvent utilisées dans des classes d'utilitaires qui ne dépendent pas de variables d'instance d'une classe particulière. Ils sont également utilisés lorsqu'un programmeur doit accéder à la méthode mais qu'il n'est pas nécessaire d'instancier la classe dans laquelle elle est contenue. Les classes utilitaires ne sont normalement pas instanciées dans des objets. Il serait inhabituel qu'une méthode utilitaire ait besoin de modifier les informations d'objet. Une méthode de la classe java.lang.math, telle que pow (), serait un exemple de la manière dont ce type de méthode serait utilisé dans une classe d'utilitaires.
Les méthodes d'instance peuvent accéder directement aux variables d'instance, aux variables statiques, aux méthodes d'instance et aux méthodes statiques. Les méthodes statiques ne peuvent pas accéder directement aux variables d'instance et aux méthodes d'instance. En raison de la nature des méthodes d'instance ayant un meilleur accès aux membres de classe qu'une méthode statique, les méthodes d'instance sont le type de méthodes normalement utilisé dans les classes ordinaires.
Un inconvénient majeur des méthodes statiques apparaît lors de l'héritage lorsque le polymorphisme est utilisé. Tant que la méthode statique parente n'est pas déclarée finale, la même méthode statique par enfant peut être codée dans la classe enfant comme si elle était remplacée. Cela s'appelle techniquement masquer au lieu de remplacer, car une méthode statique ne peut pas être remplacée.
Lorsque masquer est utilisé, si la méthode statique parente est utilisée à l'aide du nom de la classe, la méthode parente sera utilisée. Si l'accès à la méthode statique enfant substituée à l'aide du nom d'objet, la méthode enfant substituée sera utilisée. Le problème se produit lorsqu'un objet enfant est upcast en tant que parent. Dans ce cas, un appel à la méthode statique enfant upcast utilisera la méthode parent à la place de la méthode enfant attendue. Avec un vrai polymorphisme, la méthode enfant serait celle activée après un upcast.