java访问静态方法_JAVA:正确访问静态方法

小编典典

首先,我想指出关键字“静态”的含义。

静态变量 每个类仅存在一次-

也就是说,如果使用静态变量创建一个类,则该类的所有实例将共享该变量。此外,如果它是一个公共静态变量,那么任何人都可以访问该变量而无需先创建该类的实例–他们只需调用Hero.staticVariableName;

静态方法/函数

是无状态的。也就是说,它们仅作用于信息(1)传递给方法/函数的参数所提供的信息,或(2)静态变量(上述名称)中的信息,或(3)硬编码到方法/函数中的信息(例如,创建一个静态函数以返回“

hello”,然后将“ hello”硬编码到该函数中)。

Eclipse之所以希望您以静态方式访问静态方法,是因为它使您和随后的程序员可以看到您正在访问的方法是静态的(这有助于防止错误)。该函数将以您执行任一种方式运行,但正确的方法是以静态方式访问静态函数。请记住,如果您调用静态方法,则无论您从哪个实例变量调用它(Tim.returnHp,Jim.returnHp,Mike.returnHp等),您都将从hero类中调用相同的函数,并且会看到完全相同的函数行为,无论您来自谁。

如果您创建了两个相同类型的对象,那么您将无法指定以静态方式访问时要返回的对象。静态函数/方法将引用整个Hero类。

您能否解释您要做什么,以便我们提供更具体的反馈?returnHp()很有可能不应该是静态的。

那是“回报命中点”吗?如果是,那么您就不希望它是静态的,因为英雄拥有的生命值是英雄状态的一部分,并且静态方法是无状态的。(请像当前状态那样考虑状态-

存活,死亡,受伤,攻击,防御,上述情况的组合等等。)我建议您进入Hero类,并将returnHp更改为非静态方法。

现在……我知道您没有提出要求,但是我想向您提供一些建议:

类名(例如Hero)应大写。实例变量名称(例如mike)应为小写。这是一种被广泛接受的命名约定,它将提高代码的可读性。

杰夫

2020-11-16

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值