Comment faire De la portée de la variable Globale(Sans en faire réellement Mondiale)
Comment puis-je faire de la portée d'une variable de Chaîne(En Java) mondial.De sorte qu'il est accessible à partir d'une autre fonction
Par exemple
//String b="null"; I don't want to do this... because if i do this, fun2 will print Null
public int func1(String s)
{
String b=s;
}
public int func2(String q)
{
System.out.println(b);//b should be accessed here and should print value of s
}
Toute Aide... Merci
Vous devez vous connecter pour publier un commentaire.
L'un des concepts fondamentaux de la programmation orientée objet est le concept de champ d'application: dans presque tous les cas, il est sage de réduire la portée d'une variable (c'est à dire où il est visible à partir de) à son minimum viable gamme.
Je vais supposer que vous avez absolument besoin de l'utilisation de cette variable dans les deux fonctions. Par conséquent, le minimum viable portée dans ce cas serait de couvrir à la fois les fonctions.
Selon la situation, vous devez évaluer la portée d'une variable, et vous devez comprendre les implications de l'augmentation de la portée (plus d'accès = potentiellement plus dépendances = plus difficile de garder une trace).
Comme un exemple, disons que vous avez absolument besoin d'une variable GLOBALE (comme vous l'appelez dans votre question). Une variable de portée Globale peut être consulté par quoi que ce soit au sein de l'application. C'est particulièrement dangereuse, que je vais le démontrer.
De faire une variable de portée globale (il n'y a pas de telles choses comme des variables globales, exactement, en Java), vous créez une classe avec une variable statique.
Si je devais modifier le code d'origine, il serait maintenant ressembler à ceci.
Cela peut être particulièrement puissant, et exceptionnellement dangereux car il peut conduire à des comportements bizarres que vous ne vous attendez pas, et vous perdez beaucoup de capacités que la programmation orientée objet, vous donne, afin de l'utiliser avec précaution.
Toujours évaluer le minimum viable portée de vos variables. Ne pas le rendre plus accessible qu'elle ne doit l'être.
Aussi, s'il vous plaît ne pas le nom de vos variables a,b,c. Et ne pas le nom de vos variables func1,func2. Il n'est pas de rendre votre application plus lentement, et il ne te tuera pas à taper quelques lettres supplémentaires.
Hmm. Vous avez clairement besoin de quelques leçons de programmation orientée objet. Dans OO il n'y a pas de "global" à la variable. Mais toute variable définie en tant que membre d'une classe (en dehors d'une méthode) est globale à l'intérieur de cette classe.
Donc func2 sera de sortie la valeur de s que SI vous appelez func1 premier.
Aussi, pourquoi les méthodes retournant un int dans votre exemple? Ils doivent être nuls.
func1()
.