为了账号安全,请及时绑定邮箱和手机立即绑定

Java静态与实例

Java静态与实例

明月笑刀无情 2019-09-02 16:53:20
所以我的编码器朋友讨厌使用static编码。然而,我的Java程序充满了它在类之间的链接,我有很多它们!是否值得重写整个代码来删除静态方法?使用一个优于另一个是否有任何优势?
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

static 适用于您不希望每个实例都有副本的情况

instance 变量适用于您希望为每个对象实例单独复制的情况。

根据业务案例,使用哪一个可能会发生变化。


查看完整回答
反对 回复 2019-09-02
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

如果你有太多静态函数和变量,它可以导致更实用的方法,而不是真正的OO。此外,如果您有公共静态变量,那么您复制的全局变量并不好。跟踪他们是一场噩梦。


一般来说,我的规则是使用实例变量,如果你可以而且只有静态变量和函数,如果它真的是一般而不是一个对象


这是类似问题Java的一个很好的答案 :什么时候使用静态方法


而不是仅仅链接到方法考虑使用新操作来创建新对象并以非静态方式从该方法访问该方法。


之前


public void myMethod(){

    Time.setTime(Time.getTime() + 20);

    System.out.println(Time.getTime());

}


public void myMethod(){

    Time t = new Time();

    t.setTime(t.getTime() + 20);

    System.out.println(t.getTime());

}

现在,在这些方法中保存的任何状态都是您创建的时间的实例。如果需要,您还可以与其他方法共享变量t。


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 473 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号