我的继承Java分配问题。我不会详细介绍这项任务,因为那不是我的问题。在该计划中。有一个超类,里面有一些字段。其中两个字段是整数,xCoord和yCoord。那么有一个子类显然也有这些整数。它还有另一个属性,短方向,不包含在超类中。我需要在用户类中访问所有这三个属性。用户类需要能够更改这些值。在尝试编译时。我收到错误:
error: ';' expected
在我的用户类中尝试增加xCoord或yCoord的所有行。例如:
mov1.yCoord++
^
所以,我真的不知道问题是什么。我假设它与不在该类中直接声明的属性有关。我的理由是因为我有相同方式处理短方向的线。例如:
mov1.direction = 1
这通过编译器没有问题。所以我认为必须是因为xCoord和yCoord只在超类中声明。但这只是我的假设,我可能是错的。无论我是否,我需要解决这个问题,同时仍然使用继承这些字段,分配需要它。有什么帮助吗?
供参考,以下是相关代码的一些片段:
超类:(不包括方法,因为不相关)
public class StationaryThing {
// Attributes
protected String name;
protected final int gridlength = 10;
protected final int gridwidth = 10;
public int xCoord;
public int yCoord;
// Constructor
public StationaryThing(String name, int xCoord, int yCoord) {
this.name = name;
this.xCoord = xCoord;
this.yCoord = yCoord;
}
子类:(同样,不包括方法)
public class MovingThing extends StationaryThing {
// Attributes
public short direction = 0;
// Constructor
public MovingThing(String name, int xCoord, int yCoord) {
super(name, xCoord, yCoord);
}
来自用户类的一些相关行:
for (int i = 0; i < noMoves; i++) {
if (mov1.direction == 0) {
if (hole1.xCoord == mov1.xCoord && hole1.yCoord == mov1.yCoord+1) {
mov1.direction = 1;
mov1.holeAhead();
mov1.directionChange();
}
if (mov1.yCoord == 9) {
mov1.direction = 1;
mov1.directionchange();
}
else {
mov1.displayAttributes
mov1.yCoord++;
}
}
再次感谢您提供的任何帮助。
答案 0 :(得分:0)
这些线条是否“缺失”;在一个方法里面?类中不能有“只是代码”,但应该有像
这样的方法public void doSth () {
a++;
}