Die Unterschiede zwischen Instanzvariablen, lokalen Variablen und Klassenvariablen werden zusammengefasst.
Variablen, die direkt unter der Klasse ** und außerhalb der ** Methode ** definiert sind
Eine in ** innerhalb einer Methode ** deklarierte Variable Es gibt kein Problem, selbst wenn Sie eine lokale Variable mit demselben Namen wie ** Instanzvariable und Klassenvariable ** definieren! !! !!
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(); //Budgetausgaben als 9500
System.out.println(Party.budget); //9500 und Ausgabe
System.out.println(P2.budget); //9500 und Ausgabe
P2.participants = 10;
P2.remain(); //8500 und Ausgabe
System.out.println(Party.budget); //8500 und Ausgabe
System.out.println(P1.budget); //8500 und Ausgabe
}
}
class Party {
int participants; //Instanzvariable
static int budget; //statische Variable (Klassenvariable)
void remain(){
int expense = 100 * participants; //Lokale Variablen
budget -= expense;
System.out.println(budget);
}
}
** - Bei einer lokalen Variablen ** mit demselben Namen wie die Instanzvariable
public class Main{
public static void main(String[] args){
Party P1 = new Party();
Party P2 = new Party();
Party.budget = 10000;
P1.remain(); //Budgetausgaben als 8000
System.out.println(Party.budget); //8000 und Ausgabe
System.out.println(P2.budget); //8000 und Ausgabe
P2.remain(); //6000 und Ausgabe
System.out.println(Party.budget); //6000 und Ausgabe
System.out.println(P1.budget); //6000 und Ausgabe
}
}
class Party {
int participants; //Instanzvariable
static int budget; //statische Variable (Klassenvariable)
void remain(){
int participants = 20; //Lokale Variable mit demselben Namen wie die Instanzvariable
System.out.println(participants);
budget -= participants*100;
System.out.println(budget);
}
}
Recommended Posts