Les différences entre les variables d'instance, les variables locales et les variables de classe sont résumées.
Variables définies directement sous la classe ** et en dehors de la ** méthode **
Une variable déclarée en ** dans une méthode ** Il n'y a pas de problème même si vous définissez une variable locale avec le même nom que ** variable d'instance et variable de classe **! !! !!
public class Main{
public static void main(String[] args){
Party P1 = new Party();
Party P2 = new Party();
Party.budget = 10000;
P1.participants = 5;
P1.remain(); //sorties du budget comme 9500
System.out.println(Party.budget); //9500 et sortie
System.out.println(P2.budget); //9500 et sortie
P2.participants = 10;
P2.remain(); //8500 et sortie
System.out.println(Party.budget); //8500 et sortie
System.out.println(P1.budget); //8500 et sortie
}
}
class Party {
int participants; //Variable d'instance
static int budget; //variable statique (variable de classe)
void remain(){
int expense = 100 * participants; //Variables locales
budget -= expense;
System.out.println(budget);
}
}
** - Lorsque vous avez une variable locale ** avec le même nom que la variable d'instance
public class Main{
public static void main(String[] args){
Party P1 = new Party();
Party P2 = new Party();
Party.budget = 10000;
P1.remain(); //extrants budgétaires comme 8000
System.out.println(Party.budget); //8000 et sortie
System.out.println(P2.budget); //8000 et sortie
P2.remain(); //6000 et sortie
System.out.println(Party.budget); //6000 et sortie
System.out.println(P1.budget); //6000 et sortie
}
}
class Party {
int participants; //Variable d'instance
static int budget; //variable statique (variable de classe)
void remain(){
int participants = 20; //Variable locale avec le même nom que la variable d'instance
System.out.println(participants);
budget -= participants*100;
System.out.println(budget);
}
}
Recommended Posts