java static关键字

来源:互联网 发布:程序员人才需求 编辑:程序博客网 时间:2024/06/06 13:16

static特点:
1,static是一个修饰符,用于修饰成员。
2,static修饰的成员被所有的的对象所共享。
3,static 优先于对象存在,因为static的成员随着类的加载就已经存在了。
4,static修饰的成员多了一种调用方式,可以直接被类名所调用,(类名.静态成员)。
5,静态修饰的数据是共享数据,对象中存储的是特有数据。

import java.util.*;class StaticTest{    static int i=47;}public class Main{    public static void main(String[] args) {        StaticTest s=new StaticTest();        s.i++;        System.out.println(s.i);        StaticTest.i++;        System.out.println(StaticTest.i);    }}

最终为:
48
49
在引用static时,推荐尽量用“类名.静态成员”的形式。

static什么时候用
1,静态变量
当分析对象中所具备的成员变量的值都是相同的。这时这个成员就可以被静态修饰
这要数据在对象中都是不同的,就是对象的特有数据,必须存储在对象中,是非静态的。
如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,定义成静态的。

2,静态函数
函数是否用静态修饰,参考一点,就是该函数功能是否有访问到对象中的特有数据。
也就是说,从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的。如果不需要,就可以将该功能定义成静态的(当然也可以定义成非静态,但是非静态需要被对象调用,而仅创建对象调用非静态没有访问特有数据的方法,该对象的创建是没有意义的)。

原创粉丝点击