0
votes

Avantages de rendre les variables locales plutôt que globales

Dans mon programme actuel, j'ai des variables déclarées au début telles que:

private static final double imageSize

Cette variable n'est pas modifiée et utilisée uniquement dans une seule méthode donc mon IDE me dit de faire c'est une variable locale. Quels en sont les avantages? Je change régulièrement la variable lors du test, est-ce que je peux la garder là où elle se trouve?


2 commentaires

Où est-il initialisé? Pouvez-vous le rendre final ?


C'est définitif, désolé j'ai oublié d'ajouter cela. Il est actuellement initialisé lorsque vous créez la classe, en dehors de la méthode principale de la classe.


3 Réponses :


1
votes

La variable locale n'a qu'un seul avantage: lorsque vous codez cette viarable od disponsable uniquement avec ce code local (par exemple méthode). Lorsque vous avez un gros projet et 100 variables, il est très utile d'avoir des variables locales. Mais dans votre cas: il vaut mieux avoir des variables statiques globales affectées à des choses qui ne changent pas dans le programme. Lorsque vous en aurez besoin, vous pourrez facilement trouver cette variable. par exemple dans 5 ans les moniteurs auront 10 mètres et vous voudrez changer la taille de l'image.


0 commentaires

0
votes

En complément pour répondre à Jacek. Votre variable ressemble à une constante. Selon la convention de code Java pour les variables constantes ( final ) vous devez utiliser des majuscules:

private static final double IMAGE_SIZE


0 commentaires

1
votes

Logiquement, il est normal de le laisser là où il se trouve. De plus, au fur et à mesure que vous modifiez la valeur vous-même, cela la rend plus lisible en la gardant au sommet.

L'EDI suggère de le garder local pour la méthode car il est recommandé de garder la visibilité et la durée de vie d'une variable au minimum possible. En la laissant au niveau de la classe, votre variable vit aussi longtemps que la classe est chargée, même si la méthode qui l'utilise a mis fin à son exécution.


0 commentaires