static 关键字

创建类时,就是在描述那个类的对象的外观行为。除非用new创建那个类的对象,否则,实际上并未获得任何对象。执行new来创建对象时,数据存储空间才被分配,其方法才供外界调用。

static的两个作用:

第一:只想为某个特定域分配单一存储空间,而不考虑究竟要创建多少对象,甚至根本就不创建对象。

第二:希望某个方法不与包含它的类的任何对象关联在一起,即使没有创建对象,也能够调用这个方法。

 

只需将static关键字放在定义之前,就可以将字段或者方法设定为static.

class StaticTest{
   static int i = 47;
}

StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();

在这里st1和st2指向同一存储空间,具有相同的47.

并且可以直接通过   类名加变量名引用:

StaticTest.i++;

对于static方法的调用,可以直接用类名加方法名的方式调用。也可以典型的new对象,然后通过对象调用。

static字段对每个类来说都只有一份存储空间,而非static字段则对每一个对象都有一个存储空间。

static方法最重要的用法就是不创建任何对象的前提下就可以调用。所以main方法都是static的。

 

是否定义成静态static方法:

方法是否用静态修饰,就参考一点,就是该方法功能是否有访问到对象中特有的数据:

该功能是否需要访问非静态的成员变量,如果需要,该功能就是非静态的。如果不需要,就可以将该功能定义成静态的。

是否定义成静态static变量:

对象中的成员变量都相等,静态。不同,非静态。相同数据不需要修改,只是使用,静态。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值