Quand dois-je utiliser des méthodes statiques dans une classe et quels en sont les avantages?
J'ai des notion de variables statiques, mais quels sont les avantages des méthodes statiques dans une classe. J'ai travaillé sur certains projets, mais je n'ai pas une méthode statique. Chaque fois que j'ai besoin d'appeler une méthode d'une classe, j'ai créer un objet de cette classe et d'appeler la méthode souhaitée.
Q: variable Statique dans une méthode tient c'est la valeur même lors de l'exécution de la méthode, mais accessible seulement dans son contenant de la méthode, mais quelle est la meilleure définition de la méthode statique?
Q: Est d'appeler la méthode statique sans créer d'objet de cette classe est le seul avantage de la méthode statique?
Q: Ce qui est accessible de la gamme pour la méthode statique?
Grâce
- Cela a été assez largement discuté sur découvrez stackoverflow.com/questions/169378/... et d'autres questions soulevées lors de la recherche pour "méthode statique".
Vous devez vous connecter pour publier un commentaire.
Votre description d'une variable statique est plus adaptée à celle trouvée dans C. Le concept d'une variable statique dans l'Objet en termes d'Orienté est conceptuellement différent. Je suis de dessin à partir de Java expérience ici. Les méthodes statiques et les champs sont utiles quand elles sur le plan conceptuel n'appartiennent pas à une instance de quelque chose.
Envisager un cours de Math qui contient des valeurs communes comme Pi ou e, et quelques fonctions utiles comme le sin et cos. Il n'a vraiment pas de sens de créer des instances de l'utilisation de ce type de fonctionnalité, ils sont donc mieux que la statique:
Dans les langages à objets (encore une fois, à partir d'une perspective Java) fonctions, ou mieux connu sous le nom de méthodes, ne peut avoir des variables locales statiques. Seules les classes peuvent avoir des membres statiques, comme je l'ai dit, ressemblent peu par rapport à l'idée de statique dans C.
Méthodes statiques ne pas passer une "cette" pointeur vers un objet, de sorte qu'ils ne peuvent pas référence non-statique des variables ou des méthodes, mais peut par conséquent être plus efficace au moment de l'exécution (moins de paramètres et l'absence de charge de créer et de détruire un objet).
Ils peuvent être utilisés pour un groupe cohérent de méthodes dans une classe unique, ou d'agir sur les objets de leur classe, comme dans le modèle de fabrique.
global $myNonStaticClassObj
à l'intérieur de la fonction statique. Vous pouvez lire et définir des valeurs de non-membres statiques à l'aide de cette méthode, je ne comprends pas pourquoi j'ai toujours lu que les méthodes statiques ne peuvent pas faire référence à la non-statique, ce n'est pas vrai.La syntaxe (en php) pour les méthodes statiques:
Code Client:
Qui fait plus de sens que:
Comme le
multiply()
méthode n'utilise pas de variables de classe et n'a pas besoin d'une instance deNumber
.Essentiellement, les méthodes statiques permettent d'écrire du code de procédure dans un langage orienté objet. Il vous permet d'appeler des méthodes sans avoir à créer un objet en premier.
Le seul moment où vous souhaitez utiliser une méthode statique dans une classe, c'est quand une méthode ne nécessite pas une instance d'une classe à être créé. Cela peut être lors de la tentative de retour à une source de données partagée (par exemple, un Singleton) ou exécution d'une opération qui ne doit pas modifier l'état interne de l'objet (Chaîne de caractères.format par exemple).
Cette entrée de wikipedia explique les méthodes statiques plutôt bien: http://en.wikipedia.org/wiki/Method_(computer_science)#Static_methods
Les variables et méthodes statiques sont liés à la classe, et non une instance de la classe.
Méthodes statiques ne doivent pas contenir un "état". Tout ce qui est lié à un état, doit être lié à un objet instancié, et non pas la classe.
const
afin de fournir une constante, immuable de la valeur pour elle-même.En commun l'utilisation de méthodes statiques est nommé dans le constructeur de l'idiome. Voir: http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.8.
Méthodes statiques en PHP:
Peut être appelée sans la création d'un objet de classe.
Pouvez uniquement appeler les méthodes statiques et de la fonction.
global
à l'intérieur d'une fonction statique.Variable statique est utilisé lorsque vous souhaitez partager des informations entre les différents objets de la classe.Comme variable est partagé chaque objet peut mettre à jour et de la valeur mise à jour sera disponible pour tous les autres objets.
En tant que variable statique peut être partagé,ce sont souvent appelés comme variable de classe.
éléments statiques sont accessibles à partir de n'importe quel contexte (c'est à dire n'importe où dans votre script), de sorte que vous pouvez accéder à ces méthodes sans avoir à passer une instance de la classe d'objet à objet.
Éléments statiques sont disponibles dans chaque instance d'une classe, de sorte que vous pouvez définir les valeurs que vous voulez être disponible à tous les membres d'un type.
pour plus de lecture un lien!