我想要做的是实现一个Object的构造函数。 我已经在类的字段中定义了类;但是因为它是一门我不知道如何初始化它。
这是我的班级和领域。
public class Player
{
// Instance variables.
//Weapon is a class.
//The max health starts at 30 health points.
private String myPlayerName;
private Weapon myWeapon;
private int myCurrentHealth;
private int myMaxHealth;
private int myNumPotions;
/**
* Constructor initializing class Player
* Parameters of the player should be:
* player name, players initial health, the players weapon.
*/
public Player(String myPlayer, int initialHealth, Weapon currentWeapon) {
myPlayerName = myPlayer;
myWeapon = new Weapon();
myMaxHealth = 30;
initialHealth = myMaxHealth;
myCurrentHealth = initialHealth;
myNumPotions = 0;
}
这里出了点问题,我不确定是什么?任何人都可以帮我构建currentWeapon参数吗?
答案 0 :(得分:3)
我不完全确定你在问什么。你的构造函数接受一个名为currentWeapon的武器实例,但你将myWeapon分配给一个新的武器实例,不要使用你给你的当前武器。
构建播放器时,您应该执行以下操作:
new Player('blah', 100, new Weapon());
在你的Player构造函数中,你应该有一行:
myWeapon = currentWeapon;
答案 1 :(得分:2)
不应该这样吗?为什么要构造一个新的Weapon对象而不是分配构造函数参数中传递的对象?
this.myWeapon = currentWeapon;
<强>更新强>
以这种方式构建Player类: -
Player player = new Player("Tom", 10, new Weapon(10,20));
答案 2 :(得分:2)
试试这个:
myWeapon = currentWeapon;
或更为谨慎:
this.myWeapon = currentWwapon;
这很简单,因为在OOP中,即C#,Java ...对象是引用,所以你不必担心。 更具体地说,检查this!