我如何声明这样的函数?

时间:2015-04-18 23:05:33

标签: java methods chaining method-chaining

如何在Java中声明类似damagePlayer的函数?

player.getPlayer1().damagePlayer(50);

我已经知道我们必须声明这样的东西才能得到它:

ServerPlayer player = new ServerPlayer();

但是,我们如何将第二个函数(GetPlayer())置于首位?我正在学习Java,这将是一种保存代码的绝佳方式。

2 个答案:

答案 0 :(得分:1)

在名为Player的类上声明方法,这将起作用。

public Player getPlayer(){
    return this;
}

public void damagePlayer(int damage){
    ...
}    

这只是一种方式。

答案是 - 第一个方法必须返回对象,该对象是Player类的实例,其中方法为damagePlayer

答案 1 :(得分:1)

player.getPlayer1().damagePlayer(50);

damagePlayer(50)将被写为getPlayer1()返回类型的方法。因此,在实例player.getPlayer1()返回的类中实现您的damagePlayer(int x)类。

所以如果getPlayer1()返回一个类型(或类)Foo的对象,你可以在Foo类中编写damagePlayer方法。

例如

Bar bar = new Bar();
bar.doThis().doThat(25) ;

class Bar{
  public Foo doThis() {
    Foo foo=new Foo();
    //do some thing using foo

    return foo;
  }
}

class Foo() {

  void doThat(int number){
    // can do anything using parameter number and return anything
  }

}