Variable statique dans plusieurs sous-classes différentes - corrigée
Je me demandais ce qui s'est passé si j'définir une base de l'Activité objet de toutes mes activités en tant que sous-classes. Puis-je déclarer une variable statique dans la classe de base, tous les sous-classes utilisent la MÊME statique ou il n'y en aura par la sous-classe.
Par exemple. Ma classe de base:
public class MyBaseActivity extends Activity{
static int myStatic;
...
....
}
Alors:
public class MyActivity1 extends MyBaseActivity {
private void someMethod1(){
myStatic = 1;
}
...
....
}
et
public class MyActivity1 extends MyBaseActivity {
private void someMethod2(){
if (myStatic == 1)
doSomething();
}
...
....
}
Si j'ai maintenant commencer MyActivity1 et il définit une valeur dans "myStatic". Il sort alors, et puis j'ai commencer à MyActivity2 - ce que je peux encore avoir de la valeur définie par la première activité?
Dans l'exemple ci-dessus, l'instruction "if" être vrai ou faux?
Je sais que si j'instancie Activity1 plus d'une fois alors évidemment, je voudrais obtenir la même variable statique. Cependant, ici, je suis de l'instanciation d'un autre sous-classe à chaque fois.
Je suis arriver a l'impression que c'est ce qui se passe pour moi, mais vous voulez être sûr.
source d'informationauteur theblitz
Vous devez vous connecter pour publier un commentaire.
Statique statique. Ils font référence au même objet.
Variables statiques appartiennent à la Classe objet, pas les instances. Il y a seulement un objet de Classe (pour la classe), donc il n'y a qu'une seule instance de la variable statique, donc "oui ils tous de la même variable".
Sous-classes ont visibilité de la variable si elle est protégée ou public.
Toutes les classes vont partager la même
static
instance de classe. ainsi, leif
énoncé est vrai