Bonjour,
J'ai depuis longtemps un flou sur ce qu'est réellement une classes static.
Mon problème n'est pas de savoir comment elle se comporte, mais plutôt ce qu'elle représente et sur ce qui se cache derrière :
- Un programmeur m'a dit une fois qu'une classe static est simplement une classe qui ne possède qu'une seule instance que l'on ne contrôle pas et qui est crée par le constructeur static lors de la première utilisation de la classe.
Pour ma part, j'ai l'impression qu'il n'y a pas création d'objet avec de telles classes car on travaille directement sur le type... Est-ce qu'au niveau MSIL, une classe static est traduite comme une classe n'ayant qu'une instance ? Mais alors, à quoi peut-on rattacher une classe static dans le monde réel ? Je veux dire qu'est-ce qu'elle représente concrètement ? Ou bien n'est elle utile que pour la programmation sans avoir réellement de signification ?- J'ai l'impression que les classes statiques sont là pour combler tout ce qu'on ne peut pas faire en programmation objet et qui est pourtant indispensable : on y met des des méthodes prenant en paramètre des objets que l'on ne peut hériter (comme des objets de type string) (on peut même maintenant "tricher" avec des méthodes d'extensions), des variables globales... Peut être y t-il d'autre cas typique d'utilisation de classe statique ?
- Une autre question que je me pose : pourquoi les avoir appelées "static" ? Est-ce en opposition avec le polymorphisme des classes "normales" à l'exécution ?
- Enfin, pourquoi ne peut on pas binder une classe statique à des contrôles, pourquoi ne peut-on pas la sérialiser ?
Si quelque un peut m'éclaircir sur ces points...
Merci d'avance.
mathmax
Partager