2010-07-31 6 views
0

Pourquoi ne pouvons-nous pas utiliser des membres de données non statiques dans une méthode statique?méthode statique vs données statiques

+0

Je ne comprends pas votre question. ** en dehors d'une méthode statique dans une méthode statique ** – Sarfraz

+0

vraisemblablement: pourquoi ne pouvons-nous pas utiliser, dans une méthode statique, des membres de données non statiques déclarés en dehors de cette méthode. – Yellowfog

Répondre

4

Les membres non statiques appartiennent à un objet. Une méthode statique n'a pas d'objet.

Si nous avons

class MyClass { 
int member; 
. . . 

public static int statFunc() { 
    . . . 
    foo = member; 
    . . . 
} 
. . . 

}

Si nous avons deux cas de MyClass celui où member = 1 et une autre où member = 2 et nous appelons statFunc alors statFunc n'a aucune idée de quelle valeur de member à utiliser.

-1

Parce que cela n'a aucun sens. Les variables d'instance sont associées à une instance de la classe. Les méthodes statiques ne le sont pas. De quelles variables de l'instance parlez-vous dans la méthode statique?

+0

Quelqu'un est-il en désaccord? – EJP

0

Les types de données non statiques se réfèrent à l'instance d'une classe, les valeurs de ces variables peuvent varier sur chaque instance créée à partir de la classe.

Par exemple regarder le code suivant:

public class name { 

String name; 

} 

Chaque objet nom peut avoir un nom différent. C'est pourquoi les variables non statiques ne sont accessibles que par des méthodes non statiques, sinon une méthode statique ne sait jamais quelle variable d'instance est ment.

J'espère que cela aide.

Questions connexes