Java中类变量与实例变量要注意的问题

类变量与实例变量

类变量

其实就是类中方法体之外不带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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值