Java 无法获取具有抽象父类的子嵌套类的字段
当尝试获取子嵌套静态类的字段值时,获取Java 无法获取具有抽象父类的子嵌套类的字段,java,oop,Java,Oop,当尝试获取子嵌套静态类的字段值时,获取null*1*每个类文件被水平线分割。如何检索儿童战士的价值观 输出: null; Joe; 0 hp; null 不要重新声明成员变量。相反,您应该在构造函数内设置值 public static class Warrior extends Player{ public Warrior() { type = "Warrior"; hitPoints = 100; weapon = new Weapon.S
null
*1*每个类文件被水平线分割。如何检索儿童战士的价值观
输出:
null; Joe; 0 hp; null
不要重新声明成员变量。相反,您应该在构造函数内设置值
public static class Warrior extends Player{
public Warrior() {
type = "Warrior";
hitPoints = 100;
weapon = new Weapon.Sword();
}
}
另一个选项是创建一个GameCahracter
构造函数,该构造函数接受与每个成员变量匹配的参数
附带说明:公共成员变量是个坏主意。不要重新声明成员变量。相反,您应该在构造函数内设置值
public static class Warrior extends Player{
public Warrior() {
type = "Warrior";
hitPoints = 100;
weapon = new Weapon.Sword();
}
}
另一个选项是创建一个GameCahracter
构造函数,该构造函数接受与每个成员变量匹配的参数
附带说明:公共成员变量是个坏主意。
GameCahracter.name
和GameCahracter.hitPoints
未分配,因此它们保持为空<代码>战士。名称和战士点数。生命值
已分配,但它们是不同的字段。在父项和子项中使用相同名称的字段是个坏主意(与方法不同)。GameCahracter.name
和GameCahracter.hitPoints
未分配,因此它们保持为空<代码>战士。名称和战士点数。生命值
已分配,但它们是不同的字段。在父级和子级中使用同名字段是个坏主意(与方法不同)。公共成员变量是个坏主意。。你是说我应该把战士职业定义为私人职业吗?如果是,那么我如何访问它?@RCola:您可以根据需要创建getter/setter方法来提供访问。这允许您保持类的API不变,即使您更改了类的内部结构。使用方法而不是公共成员还允许您验证输入。目前,任何人都可以将生命值设置为1000或-1000。公共成员变量是个坏主意。。你是说我应该把战士职业定义为私人职业吗?如果是,那么我如何访问它?@RCola:您可以根据需要创建getter/setter方法来提供访问。这允许您保持类的API不变,即使您更改了类的内部结构。使用方法而不是公共成员还允许您验证输入。目前,任何人都可以将生命值设置为1000或-1000。
null; Joe; 0 hp; null
public static class Warrior extends Player{
public Warrior() {
type = "Warrior";
hitPoints = 100;
weapon = new Weapon.Sword();
}
}