Pourquoi il n'y a pas de variables globales en Java?
Pourquoi il n'y a pas de variables globales en Java?
- Pour certaines définitions de "pleinement". 🙂
- vous pourriez contourner que bien que l'utilisation de la GodObject motif 🙂
- Trop localisées? Vous ferme rends compte qu'il parle le langage de programmation, pas l'île de droit?
- Copie de Java QAI - Pourquoi il n'y a pas de variables globales en Java? par Peter Norvig.
Vous devez vous connecter pour publier un commentaire.
Les variables globales sont généralement un défaut de conception.
Vos composants doit être autonome et ne devrait pas avoir besoin de tout l'état global.
Au lieu de cela, utiliser les champs statiques.
static
Est la réponse à votre question est, parce que Java ne supporte pas les variables globales, de par leur conception. Java a été conçu avec un orientée objet principes à l'esprit, et en tant que tel, toutes les variables en Java est soit local ou un membre d'une classe.
Statique des membres de la classe sont accessible dans le monde, qui est certainement l'une définition possible d'une variable globale, en fonction de votre interprétation de ce terme. Pour être pédant, tandis que les membres de classe Statiques sont accessibles via le nom de la classe et, par conséquent, à travers plusieurs champs d'application, ils sont toujours membres de la classe; et, par conséquent, pas vraiment des variables globales en tant que tel.
Java manque de soutien de variables globales est une bonne chose, car l'utilisation de variables globales est une conception anti-modèle.
System.out
pas être une variable globale? Si nous allons avec la définition de Wikipedia, alors il est clair que Java t ont des variables globales, donc la question ne peut être répondu, parce qu'elle repose sur de fausses hypothèses.out
est accessible uniquement dans le cadre deSystem
, de sorte qu'il n'est pas global, etSystem
lui-même n'est pas une variable. ErgoSystem.out
n'est pas une variable globale. Wikipédia dit aussi Java a [pas explicite globals]('en.wikipedia.org/wiki/Global_variable#Java:_no_explicit_globals). Si elle dit rien d'autre quand vous le lisez, c'était mal.Fait il y a une certaine similitude avec des variables globales - vous pouvez utiliser les propriétés du système, de les placer dans une classe et de la lecture dans une autre classe. C'est en fait assez commun pour un peu complexe, les environnements d'entreprise. JBoss par exemple régulièrement fournit un mécanisme permettant de définir et d'accéder à la fenêtre propriétés système.
Si ses une application web qui vous travaillez, alors vous pouvez utiliser une variable de session comme une variable globale....qui sera disponible dans toutes les pages de l'application web...
nous pouvons utiliser statique de la classe de tenir Global/variables de l'Application
Par exemple
La raison rationnelle est que les variables globales sont généralement une mauvaise idée, donc il n'y a aucun inconvénient à les laisser hors de la langue.
Puis il y a une pratique syntaxique raison: tout en Java qui doit être défini dans le cadre d'une classe en fonction de la syntaxe. Donc, il n'y a pas vraiment n'importe où "global" que pourrais-tu mettre un nom de variable sans changer de Java règles de portée. Sans doute, la chose la plus proche que Java permet dans la syntaxe serait un "public static" membre d'une classe qui peut être utilisée comme une variable globale dans de nombreuses façons.
Enfin, il est souvent oublié principe de simplicité qui vient dans de nombreuses formes: "en cas de doute, laisser". Ou "Keep It Simple, Stupid". Ou YAGNI. Dans le langage de conception, souvent moins, c'est mieux en termes de fonctionnalités. Sur la balance, Java est remarquablement bien conçu et a résisté à l'épreuve du temps à partir de ce point de vue.