类变量与实例变量
类变量
其实就是类中方法体之外不带static修饰符的变量啦
实例变量
又叫静态变量,顾名思义就是带关键字static的变量啦
区别
class Tank{
static int p = 000; //类变量
int q = 111; //实例变量
}
public class test {
public static void main(String[] args) {
Tank t1 = new Tank();
Tank t2 = new Tank(); //生成两个对象
t1.p = 666; //对象t1对变量p进行了修改
System.out.println("t1.p = "+t1.p);
System.out.println("t2.p = "+t2.p); //这时候输出对象t2中的p变量,发现和t1中的一样
//也就是说类变量是该类所有对象公有的,一个对象对其修改,其他对象的该变量也发生对应的修改
t1.q = 999; //对象t1对变量q进行了修改
System.out.println("t1.q = "+t1.q);
System.out.println("t2.q = "+t2.q); //这时候输出对象t2中的q变量,发现仍是默认值
//也就是说实例变量是每个对象所独有的,虽然变量的名字一样但是是不同的两个变量,就像两个重名的人,虽然名字一样但是确实两个不一样的人
//之所以不一样是因为两个对象所指向q的并不是同一个位置
t1.q = 123;
t2 = t1; //当进行变量的直接复制时,这时候两个都指向同一个变量位置,这样t1和t2指向的q变量效果和类变量是一样的。
System.out.println("t1.q = "+t1.q);
System.out.println("t2.q = "+t2.q);
}
}
t1.p = 666
t2.p = 666
t1.q = 999
t2.q = 111
t1.q = 123
t2.q = 123