我想模拟射击。该枪有6发子弹。每次射击后,子弹的数量应减少。
这是代码
public interface Gun {
public void shot();
public void reload();
}
这是主要内容:
package com.example;
class HelloCodiva {
public static void main(String[] args) {
Pistol pistol = new Pistol();
Gun gun;
gun = new Pistol();
gun.shot();
System.out.println(pistol.getBullets());
gun.shot();
gun.shot();
}
}
class Pistol implements Gun {
private int bullets;
private int damage;
private boolean reload;
public Pistol () {
this.bullets = 6;
this.damage = 10;
}
@Override
public void shot() {
this.bullets-=1;
System.out.println("Shotting");
}
@Override
public void reload() {
if(reload){
System.out.println("Reloading...");
reload = false;
}
}
public int getBullets() {
return bullets;
}
}
但是我总是得到相同的初始金额(6)。我做错了什么?
答案 0 :(得分:0)
Pistol pistol = new Pistol();
Gun gun = new Pistol();
您正在从gun
开枪,同时在pistol
中检查子弹。
如果您是从pistol
拍摄的
pistol.shot();
pistol.getBullets()
将返回预期的结果。
我想getBullets()
可以是Gun
界面的一部分,因此您将可以使用Gun
类型并可以同时访问getBullets()
时间。
所有枪支都有子弹,对吗?除了花哨的,例如Taser ...
答案 1 :(得分:0)
您正在从
射击Gun gun;
gun = new Pistol();
但算上子弹
Pistol pistol = new Pistol();
System.out.println(pistol.getBullets());