Static关键字+

        Static关键字可以用来修饰:成员变量、方法、构造代码块

静态成员变量

        当我们要访问普通成员变量时,我们可以通过实例来进行访问:

public class Demo07_static_chengyuanbl {
    public static void main(String[] args) {
        //访问普通成员变量
        Counter c1=new Counter();
        c1.value++;
        Counter c2=new Counter();
        c2.value++;
		c2.value++;
		c2.value++;
		System.out.println("c1的value="+c1.value);
		System.out.println("c2的value="+c2.value);
    }
}
class Counter{
	//成员变量
	int value;//普通成员变量(通过实例访问)
	
}

输出结果:

c1的value=1
c2的value=3

        那么,当用static关键字来修饰一个成员变量时,我们这个成员变量称为:静态成员变量。当我们想访问一个成员变量时,既可以通过实例来访问,也可以通过类名来访问

public class Demo07_static_chengyuanbl {
	public static void main(String[] args) {
    //通过实例访问
    Counter c1=new Counter();
    c1.count++;

    //通过类名访问
    Counter.count++;
    System.out.println("c1的count="+c1.count);
    }
}
class Counter{
	//静态成员变量
	static int count;
}

输出结果:c1的count=2

        那我们再来看一个实例,c1和c2的输出结果分别是几呢?:

public class Demo07_static_chengyuanbl {
	public static void main(String[] args) {
        Counter c1=new Counter();
        c1.count++;
        
        Counter c2=new Counter();
        c2.count++;
		c2.count++;
		c2.count++;
        System.out.println("c1的count="+c1.count);
        System.out.println("c2的count="+c2.count);
    }
}
class Counter{
    //成员变量
    static int count;
}

输出结果:

c1的count=4
c2的count=4

        为什么c1只进行了一次++,c2进行了三次++,但是结果却是4呢?普通成员变量在每次new一个实例时,这个实例就会拥有一个自己独立的“空间”,但是静态成员变量只拥有一个共享的“空间”所有new的实例都共享该成员变量,所以相当于实例对象c1先对静态成员变量count++了一次,实例对象c2又对静态成员变量count++了三次,由于他们共享count,所以c1和c2的值均为4。对于静态成员变量,无论修改了那个实例的值,都是访问的相同的内存空间,即所有实例的静态成员变量都被修改了,原因是静态成员变量不属于实例

        虽然实例可以访问静态成员变量,但是他们都指向同一个静态成员变量,所以推荐使用类名来访问成员变量。

静态方法

是                                                                                                                                                           

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值