Java中的类变量(静态变量static的具体用法快速入门))


先看一段代码

package study_static;

public class Childgame {
    public static void main(String[] args) {

        //定义一个变量 count 统计有多少小孩假如游戏
        int count=0;
        Child child1 = new Child("白骨精");
        child1.join();
        count++;
        Child child2 = new Child("白蛇精");
        child2.join();
        count++;
        Child child3 = new Child("青蛇精");
        child3.join();
        count++;

        System.out.println("共有" + count + "小孩子加入了游戏");

    }
}

class Child{
    private String  name;

    public Child(String name) {
        this.name = name;
    }
    public void join(){
        System.out.println(name +"加入游戏");
    }
}

问题分析

count 是一个独立的对象 以后需要访问count非常的麻烦,没有用到面向对象编程
因此就有了 类变量/静态变量
如果涉及一个int count 表示总人数。在创建一个对象的时候就把count加1,并且count是对这些对象都共享的就好了。所以就需要用类变量来解决问题。

修改过后的代码

package study_static;

public class Childgame {
    public static void main(String[] args) {
    
        Child child1 = new Child("白骨精");
        child1.join();
        child1.count++;
        Child child2 = new Child("白蛇精");
        child2.join();
        child2.count++;
        Child child3 = new Child("青蛇精");
        child3.join();
        child3.count++;

        System.out.println("共有" + Child.count + "小孩子加入了游戏");
        //类变量可以通过类名来访问

        System.out.println("child1.count=" + child1.count);
        System.out.println("child2.count=" + child2.count);
        System.out.println("child3.count=" + child3.count);


    }
}

class Child{
    private String  name;
    //定义一个变量 count,是一个类变量(静态变量)static 静态
    //静态变量的最大特点就是会被Child 类的所有对象实例共享
    public static  int count = 0;
    public Child(String name) {
        this.name = name;
    }
    public void join(){
        System.out.println(name +"加入游戏");
    }
}

运行结果

运行结果


        System.out.println("child1.count=" + child1.count);
        System.out.println("child2.count=" + child2.count);
        System.out.println("child3.count=" + child3.count);

这三条语句输出一样的原因是

静态量的最大特点就是会被Child 类的所有对象实例共享
child1.count
child1.count
child1.count
这三个指向的都是同一个内存地址所以它们的值也是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呀吖呀吖呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值