Comment définir des variables globales en Java ?
"Global" est le nom de la classe.
Comment définir des variables globales en Java ?
Faites attention lorsque vous faites cela - lorsque la classe Global sera déchargée, les variables seront indéfiniment nulles. Si vous vendez votre application, cela se produira tôt ou tard et vous continuerez à chercher l'erreur partout mais pas là.....
El static
Le mot-clé rend les variables accessibles globalement, pendant que leur classe est chargée.
Tu ne le fais pas. C'est à dessein. Tu ne devrais pas le faire même si tu le pouvais.
Cela dit, vous pouvez créer un ensemble de membres statiques publics dans une classe appelée Globals.
public class Globals {
public static int globalInt = 0;
///
}
mais vous ne devriez vraiment pas :). Sérieusement ne le faites pas.
Comme je l'ai écrit plus haut - lorsque la classe est déchargée, les variables perdent leur valeur et deviennent nulles et votre application se plante.
Alors quelle est la meilleure approche, à savoir que je peux déclarer des constantes pour que toutes les méthodes de la classe puissent y accéder ?
Les messages de cette nature sont la raison pour laquelle les novices développent une phobie des variables globales, et nous voyons alors toutes sortes de techniques flagrantes être conçues pour contourner le tabou des variables globales, mais obtenir le même effet.
Une autre méthode consiste à créer une interface comme celle-ci :
public interface GlobalConstants
{
String name = "Chilly Billy";
String address = "10 Chicken head Lane";
}
Toute classe qui a besoin de les utiliser doit simplement implémenter l'interface :
public class GlobalImpl implements GlobalConstants
{
public GlobalImpl()
{
System.out.println(name);
}
}
Je me demande pourquoi cette réponse n'a (avant la mienne) aucun vote positif. Ne fournit-elle pas une réponse alternative raisonnable à celle fournie par toutes les autres réponses ?
Pouvez-vous expliquer votre point de vue s'il vous plaît ? cela n'a jamais été une mauvaise pratique et s'il vous plaît pas besoin de voter vers le bas, merci :)
A vrai dire, il n'y a pas de concept de "GLOBAL" dans un programme OO en java
Néanmoins, il y a une part de vérité derrière votre question car il y aura des cas où vous voudrez exécuter une méthode à n'importe quel moment du programme. Par exemple, la méthode Random() de l'application Phrase-O-Matic est une méthode qui doit pouvoir être appelée de n'importe où dans le programme.
Donc, afin de satisfaire les choses comme ci-dessus "Nous devons avoir des variables et des méthodes de type global".
POUR DÉCLARER UNE VARIABLE COMME GLOBALE.
1.Mark the variable as public static final While declaring.
POUR DÉCLARER UNE MÉTHODE COMME GLOBALE .
1. Mark the method as public static While declaring.
Parce que j'ai déclaré les variables globales et les méthodes comme étant statiques, vous pouvez les appeler où vous le souhaitez en utilisant simplement le code suivant
Nom de la classe.X
NOTA : X peut être soit un nom de méthode, soit un nom de variable selon le besoin et ClassName est le nom de la classe dans laquelle vous les avez déclarés.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
23 votes
Pouvez-vous nous dire pourquoi vous voulez définir des variables globales en Java ?
54 votes
Pour accéder à la variable depuis l'extérieur de la classe
7 votes
Vous devriez peut-être modifier votre question pour y inclure un exemple de code illustrant précisément ce que vous voulez. Cela nous aiderait à recommander la meilleure solution.
8 votes
@Adam : Je devrais être capable de changer la valeur d'une variable dans une classe à partir d'une autre classe.
4 votes
Tu ne le fais pas. Il n'y a pas de variables globales en Java.
0 votes
@aTJ Je pensais que les variables globales devaient être accessibles par toutes les méthodes privées (ou plus légèrement restreintes), dans la même classe, c'est-à-dire les variables membres en java.