Pour comprendre la différence entre les variables d'instance et les variables de classe
** 1. Variables de classe et d'instance **
qiita.java
public class Oimo {
public static int CNT_CLASS; //Variable de classe
public int CNT_INSTANCE; //Variable d'instance
}
** 2. Essayez les variables de classe **
qiita.java
public class Kensho01 {
public static void main(String[] args) {
//Variable de classe
Oimo oimo3 = new Oimo();
Oimo oimo4 = new Oimo();
oimo3.CNT_CLASS = 30;
System.out.println(oimo4.CNT_CLASS); //30 est la sortie
}
}
** 3. Essayez les variables d'instance **
qiita.java
public class Kensho01 {
public static void main(String[] args) {
//Variable d'instance
Oimo oimo1 = new Oimo();
Oimo oimo2 = new Oimo();
oimo1.CNT_INSTANCE = 10;
System.out.println(oimo2.CNT_INSTANCE); //0 est la sortie
}
}
--Préparez la classe Oimo avec des variables de classe et des variables d'instance. Créez deux instances Oimo, définissez les valeurs des variables de classe et d'instance de la première instance, puis vérifiez les valeurs des variables de classe et d'instance définies pour la deuxième instance Oimo.
--Lorsque j'ai défini la variable de classe de la première instance sur 30, la variable de classe de la deuxième instance a également été définie sur 30. --Lorsque j'ai défini la variable d'instance de la première instance sur 10, la variable d'instance de la deuxième instance a été définie sur 0.
Il a été constaté que les variables d'instance sont des variables référencées pour chaque instance et que les variables de classe sont des variables couramment référencées par plusieurs instances. Cette connaissance est importante si vous souhaitez créer un programme thread-safe.
A bientôt (^_^) Noshi
Recommended Posts