如何将调用方法的对象作为参数传递给Java中的方法?

时间:2015-07-04 03:14:48

标签: java oop arguments

我在名为Ship的类中有一个名为PositionSetter的方法。它需要一个Board对象作为参数。每个Board对象都应该调用PositionSetter方法,并将自身作为参数传递。我该怎么做呢? 代码:

public void PositionSetter(Board BattleshipBoard, Ship ship)
{
  //do stuff with BattleshipBoard and ship  
}

同样,调用上述方法的对象是需要将自身作为参数传递的Board对象。我的方法的替代方案是受欢迎的。

3 个答案:

答案 0 :(得分:1)

尝试以下内容。

<强> Main.java

public class Main
{
public static void main(String[] args) {
     Ship ship=new Ship();
     ship.PositionSetter(ship);  // call method inside Ship class
 }
}

<强> Ship.java

public void PositionSetter(Board BattleshipBoard, Ship ship)
{
   //do stuff with BattleshipBoard and ship  
}

答案 1 :(得分:1)

如果您有船舶对象&#39; shipOne&#39;在你的董事会班, 你可以从Board类中调用它的PositionSetter方法,如下所示:

shipOne.PositionSetter(this,shipOne);

这回答了你的问题 不过我有以下建议:
1.我认为董事会的职责是将船舶设置在其位置。我不知道船舶类中存在PositionSetter方法的原因。

2.我也不了解船舶论证的必要性。如果它是被传递给该方法的同一艘船,那么你不必通过它。 它可以作为&#39;这个&#39;无论如何,在方法中。

3.方法名称应遵循camelCase命名约定。请参考此处: http://www.oracle.com/technetwork/java/codeconventions-135099.html
祝你的BattleShip游戏好运!

答案 2 :(得分:0)

我完全无法理解你的意思。

猜猜。

首先, 您可以编写一个界面,例如:

public interface ObjInter {
}

然后,调用该方法的其他对象必须实现此接口,例如:

public class Board implements ObjInter {
    ...
}

最后,您的方法可以这样写:

public void PositionSetter(Board BattleshipBoard, ObjInter obj) {
    //do stuff with BattleshipBoard and ship  
}

以上是否符合你的要求?