JAVA静态变量与实例变量区别
修饰符static
static 声明的成员变量/方法被视为类的成员变量/方法,而不把它当作实例对象的成员变量/方法。换句话说,静态变量/方法是类固有的,可以直接引用,其它成员变量/方法仅仅被声明,生成实例对象后才存在,才可以被引用。基于这样的事实,也把静态变量/方法称为类变量/方法,非静态变量称为实例变量/方法。
public class Shiyan1 {
public static void main(String[] args) {
System.out.println("静态变量"+StaticDemo.getX());
//System.out.println("实例变量"+StaticDemo.getY());
StaticDemo a = new StaticDemo();
StaticDemo b = new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量"+a.getX());
System.out.println("实例变量"+a.getY());
System.out.println("静态变量"+b.getX());
System.out.println("实例变量"+b.getY());
}
}
class StaticDemo{
static int x;
int y;
public static int getX(){
return x;
}
public static void setX(int newX) {
x = newX;
}
public int getY(){
return y;
}
public void setY(int newY) {
y = newY;
}
}
注意静态变量3,实例变量2
稍稍修改:
public class Shiyan1 {
public static void main(String[] args) {
System.out.println("静态变量"+StaticDemo.getX());
System.out.println("实例变量"+StaticDemo.getY());
StaticDemo a = new StaticDemo();
StaticDemo b = new StaticDemo();
a.setX(1);
a.setY(2);
System.out.println("静态变量"+a.getX());
System.out.println("实例变量"+a.getY());
b.setX(3);
b.setY(4);
System.out.println("静态变量"+b.getX());
System.out.println("实例变量"+b.getY());
}
}
class StaticDemo{
static int x;
static int y;
public static int getX(){
return x;
}
public static void setX(int newX) {
x = newX;
}
public static int getY(){
return y;
}
public static void setY(int newY) {
y = newY;
}
}
继续描述:
期望对您有所帮助。