Java中的static关键字

来源:互联网 发布:知乎温酒睡前故事全集 编辑:程序博客网 时间:2024/05/16 10:14

变量和方法都可以被声明为static类型。被声明static的变量叫做类变量,也叫静态变量,这个变量属于类,不属于任何一个对象。

没有被static修饰的变量为实例变量,属于各对象。

同样被static修饰的方法叫做类方法,属于类。没有被static修饰的方法称为实例方法,属于对象。

不管创建了多少对象实例,整个类中,系统只给静态变量分配一个空间,所有对静态变量的操作都是对这一空间值得操作。

对比下面两段程序便可弄清楚。

package fuckdefault;class Test1{public int i = 20;void changeI(){i ++;}}public class TestStatic {public static void main(String[] args) {Test1 a = new Test1();Test1 b = new Test1();a.changeI();System.out.println("a中的i:" + a.i);System.out.println("b中的i:" + b.i);}}
输出结果:

a中的i:21b中的i:20


package fuckdefault;class Test2{public static int i = 20;void changeI(){i ++;}}public class TestStatic2 {public static void main(String[] args) {Test2 a = new Test2();Test2 b = new Test2();a.changeI();System.out.println("a中的i:" + a.i);System.out.println("b中的i:" + b.i);}}
输出结果:

a中的i:21b中的i:21
比较可知,Test2中的i是静态变量(类变量)。系统只分配一个空间,对象a的操作就是对这个空间值得操作。于是对象b中的i值变化了。




0 0
原创粉丝点击