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

我首先要指出关键字static意味着什么.

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

静态方法/函数是无状态的.也就是说,它们仅作用于传递给方法/函数的参数提供的信息(1),或者(2)静态变量(上面命名),或者(3)硬编码到方法/函数中(例如,创建一个静态函数以返回“hello” – 然后将“hello”硬编码到函数中.

Eclipse希望您以静态方式访问静态方法的原因是因为它允许您和后续程序员看到您访问的方法是静态的(这有助于防止错误).该函数将以您执行的任一方式运行,但正确的方法是以静态方式访问静态函数.请记住,如果你调用静态方法,无论你从哪个实例变量调用它(Tim.returnHp,Jim.returnHp,Mike.returnHp,无论如何),你都会从英雄类中调用相同的函数,你会看到完全相同的行为,无论你是谁叫它.

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

你能解释一下你想做什么,以便我们能提供更具体的反馈吗? returnHp()很可能不是静态的.

这是“回归生命值”吗?如果是,那么你不希望它是静态的,因为英雄拥有的生命值的数量是英雄状态的一部分,静态方法是无状态的. (想想状态就像现在的状况 – 活着,死了,受伤,攻击,防守,前面提到的一些组合等等)我建议进入Hero类并将returnHp改为非静态方法.

现在……我知道你没有问,但我想告诉你一件事:

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

杰夫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值