JAVA static关键字

比如创建一个中国人的程序,则每个对象的国籍属性都为China。如果每个对象都存一份,会浪费空间。因此需要用static关键字将此变量设置为类变量(相当于默认/公有属性),该数据被该类的对象所共享。(比如学校的饮水机(static),在没来学校之前他便已经存在。而教室里的人需要用自己的杯子(非static)来接水才可以喝。饮水机随着教室(相当于类)的消失而消失,而杯子随着每个同学(相当于对象)的消失而消失)。

 

因此,是static变量先有,才能将对象加载出来。所以,static在类的加载时被初始化!所以static变量只有一份,如果被其中的一个对象修改,则别的对象也随之改动。

 

static特点:

1、类变量可以被对象调用,也可以用类直接调用

2、static是一个修饰符,用于修饰成员

3、static修饰的成员被所有的对象共享

4、static优先于对象存在,因为static成员随着类的加载而加载

5、static存储的是共享数据,对象中存储的是特有数据

 

成员变量和静态变量的区别:

1、两个变量的生命周期不同

      成员变量随着对象的创建而存在,随着对象的被回收而释放

      静态变量随着类的加载而存在,随着类的消失而消失。

      因此静态方法不能调用非静态变量!因为对象还没有存在,成员变量还没有

      加载(当于没有),而静态变量在类的加载时已经存在,因此无法调用。

2、调用方式不同

3、成员变量也叫实例变量

      静态变量也叫类变量

4、数据存储位置不同

      成员变量存储在堆内存的对象中,也叫对象的特有数据    

      静态变量存储在方法区的静态区中,所以也叫对象的共享数据

 

静态使用的注意事项:

1、静态方法只能访问静态成员,(非静态既可以访问静态也可以访问非静态)

2、静态方法中不可以使用this或者super关键字(没对象)。

3、主函数是静态的,所以要想在主函数中调用非静态变量,只能通过创建对象调用。

 

什么时候使用静态

1、静态变量

      当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静     

      态修饰。如果有一个对象需要改变就不能作为静态值。

      若果是相同的数据,对象不需要做修改,只要使用即可,不需要存储在对象 

      中,定义成静态的。

      

 

2、静态函数

      函数是否用静态修饰,参考一函数功能是否有访问到对象中的特有数据。从    

      从代码看,该功能是否需要访问非静态的成员变量,如果需要,该功能就是    

      非静态的,否则静态。

      

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值