继了解this博客后,可以更好的了解static了

1. static方法含义为静态方法,其实它和构造方法的主要区别是它里面没有this的方法。其实我们写的程序中必须要写的main方法,其实就是一个静态方法。

2. static方法内部是不能直接使用非静态方法的,而可以直接使用静态方法。所以,我们可以直接使用类里面定义的静态的test方法,如test("Hello");然而不能直接使用非静态方法,所以我们在main方法中,使用非静态方法时,必须通过new 来新建一个对象,然后通过其引用来调用非静态方法和方法非静态数据成员。

3. 但是有时候为了方便起见,为了能够直接调用方法,使用大量的静态方法,这其实正是static方法的主要用途,其实它这就有点像全局方法了。但是在java中是禁止使用全局方法(至于为什么禁止使用全局方法,我个人觉得全局方法一致保存在内存中,不利于垃圾回收,导致内存泄漏)。但你在类中在类中置入static方法就可以方位其他static域和static方法。但是在代码中不能大量的出现static方法,因为static字段对每个类来说都只有一份存储空间,而非static字段则是对每个新建的对象有一个存储空间。

4. 基于以上,很多人不禁回想,那么static到底是不是面向对象的方法呢?因为它们的确具有全局函数的语义,使用static方法时,由于不存在this,所以不是通过”面向对象发送消息“的方式来完成的。我个人觉得,这种问题不用过多的思考,正如鸟里面也有不会飞的鸟,我们就不能说这不会飞的鸟就不是鸟了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值