2011-10-16 5 views
9

Pourquoi les classes statiques ne peuvent-elles pas avoir des méthodes et des variables non statiques lorsque des classes non statiques peuvent avoir des méthodes et des variables statiques?Pourquoi les classes statiques ne peuvent-elles pas avoir des méthodes et des variables non statiques?

Quel est l'avantage d'avoir des méthodes statiques et des variables dans une classe non statique? Bien qu'ayant un constructeur statique dans une classe non-statique est compréhensible.

Répondre

25

Les classes statiques ne peuvent pas être instanciées en premier lieu, même si vous pouviez déclarer des membres non statiques (instance), ils ne sont jamais accessibles. Puisqu'il n'y a vraiment pas de point permettant cela pour cette raison, le langage l'interdit simplement.

Gardez à l'esprit que les classes statiques sont seulement les classes, alors qu'il ya deux choses qui sont directement liés à des classes non statiques: des classes eux-mêmes, et les instances/objets des classes. Une classe non statique peut avoir à la fois des membres statiques et non statiques, de sorte que les membres statiques s'appliquent à la classe, tandis que les membres non statiques s'appliquent aux instances de cette classe.

2

La classe statique ne peut pas contenir de membres non statiques car, par définition, elle ne peut pas être instanciée, donc il n'y a aucune possibilité d'utiliser ces membres. Cependant, les membres statiques dans une classe non statique peuvent être utilisés sans instance de classe - un scénario un peu différent, c'est-à-dire pour des méthodes utilitaires ou des méthodes d'usine.

Questions connexes