Quand utiliser des variables/méthodes et quand utiliser les variables d'instance/méthodes en Java?
je voudrais poser la question de savoir quand il serait avantageux d'utiliser des variables/méthodes ou dans l'autre cas, les variables d'instance/méthodes en Java?
Je sais que cela dépend de certains cas (comme la programmation util-classes comme des méthodes statiques), mais peut-on déclarer quelque chose comme une stratégie générale?
OriginalL'auteur user3133542 | 2014-01-16
Vous devez vous connecter pour publier un commentaire.
Au novice :
Utiliser les variables d'instance quand : Chaque variable a une valeur différente pour différents objets. E. g. nom de l'étudiant, numéro de rôle etc..
utiliser des variables : la valeur de La variable est indépendante de l'objet (qui n'est pas unique pour chaque objet). E. g. nombre d'élèves.
OriginalL'auteur TheLostMind
static
variables sont souvent utilisés pour les constantes, qui est commun à tous les cas, si la classe. Par exemple, beaucoup de gens n'aiment pas "coder en dur" constantes dans leur code; - ils faire unpublic static
ouprivate static
variable avec un nom explicite et de l'utiliser dans leur code, ce qui devrait rendre le code plus lisible.En Bref
Toute méthode ou une variable qui est indépendant de l'état d'une instance de la classe doit être statique.
OriginalL'auteur Abimaran Kugathasan
Variable statique: Lorsque vous avez besoin de quelque chose qui sera utilisé par l'application et chaque instance besoin de savoir la variable.
Variable d'Instance: Il sera différent de l'objet de l'objet et de l'objet de la propriété tandis que la variable statique de la Classe de la propriété.
Statique de la fonction: Utilisé pour faire de l'utilitaire de tâche. Peut être appelé sans aucun objet de déclaration.
Instance de la fonction: Besoin d'objet pour appeler cette fonction.
statique ou instance dépend de votre utilisation .
OriginalL'auteur Md. Yusuf
Pense que des variables statiques de la classe à l'échelle des variables globales ou, si vous utilisez une version "finale" mot-clé, en tant que classe à l'échelle mondiale des constantes. Utilisation statique non-final variables judicieusement, elles sont partagées entre toutes les instances de classe et il peut conduire à certains non-erreurs évidentes. Je vous conseille d'éviter d'utiliser mutable variables statiques à tous - il y a des petits d'aucun cas où un tel besoin ne pouvait pas être mis en œuvre à l'aide de l'injection de dépendance.
Également à l'aide de variables globales a toujours fait des tests unitaires beaucoup plus difficile - encore un inconvénient à prendre en compte.
OriginalL'auteur Denis Kulagin
Comme pour les méthodes : chaque méthode
Foo.method(Bar1 b1, Bar2, b2)
, par définition, pourrait toujours avoir recours à un autre équivalent de dessins:Bar.altmethod(Foo f, Bar b2)
et
static staticMethod(Foo f, Bar b1, Bar b2)
Et vous pouvez aussi envelopper cette dernière méthode comme une méthode d'instance de la classe du service qui est lui-même un singleton (de sorte que la statique-ness de la méthode est un peu peu caché par la classe c'est dans).
La seule convaincante raison d'avoir votre méthode comme une méthode d'instance de la classe de l'un de vos arguments de méthode (de la version statique), c'est quand vous vous attendez à être sous-classes de cette classe, et qu'il pourrait être utile pour les sous-classes pour avoir une institution spécialisée de la mise en œuvre de la méthode.
Imaginer
Il pourrait être utile de laisser ouverte la possibilité d'ajouter
Autre que cela, toutes vos options sont essentiellement équivalentes.
OriginalL'auteur Erwin Smout