应用程序类不能更改子类字段

时间:2013-12-03 20:34:40

标签: java inheritance field

我的继承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++;
            }
        }

再次感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

这些线条是否“缺失”;在一个方法里面?类中不能有“只是代码”,但应该有像

这样的方法
public void doSth () {
    a++;
}

请参阅java code is showing error. ( ';',expected)了解类似情况。

相关问题