在第二类的方法中使用第一类中的方法

时间:2014-02-23 10:58:42

标签: java eclipse

我有一个赋值(用java编写),它在接口方面非常具体,以及如何以及在何处实现各种各样的东西。而且我知道有很多类似的问题被问到,但我似乎无法将它们与我的问题联系起来。

我必须实施的课程是

 public class Algorithm<G extends Game<M>, M extends Move>
implements AIp<M>

我不允许更改该名称。此类中的方法必须实现类G中的一些方法。

Game中实现的界面G包含一些方法,例如makeMove()evaluateSituation()(我们在这里播放Connect 4)。

到目前为止,我已经在单独的类中实现了两个接口的所有方法,并且我还创建了一个播放Board(类)。在G中,我创建了一个玩游戏的棋盘对象。

所以我的问题是:如何在我的方法(G)中使用类Board和类Algorithm中的方法,而不创建{{1}的新对象(因为我已经有了)和/或Board

编辑:

G

someList未在Game中实现。

1 个答案:

答案 0 :(得分:1)

据我了解您的概念,我认为您可以在Board类中为Game对象声明getter方法,并在G中实现。

class G 
{
...
    public Board getBoard() 
    {
        return theBoardYouCreatedInG;
    }    
}

如果您已有G个对象,则只需在Algorithm的构造函数中提供它。然后,您只需使用G对象及其getter方法来获取Board对象

public class Algorithm<G extends Game<M>, M extends Move> implements AIp<M>
{

    G g;

    public Algorithm(G g) 
    {
        this.g = g;
    }

    public someMethod()
    {
         g.someMethodFromG();
         g.getBoard().someMethodFromBoard();
    }


}

编辑: 如果您想以这种方式使用代码,则需要在Game中实现getBoard()。如果那不可能,那么我猜你必须在构造函数中提供Board对象(就像你使用G对象一样)

G不应该是一个真正的类,它是一个类的参数,你稍后会指定一些类(在这种情况下,任何实现Game的类),如果你想使用{的方法{1}}他们需要在G中声明。