我在名为Ship的类中有一个名为PositionSetter的方法。它需要一个Board对象作为参数。每个Board对象都应该调用PositionSetter方法,并将自身作为参数传递。我该怎么做呢? 代码:
public void PositionSetter(Board BattleshipBoard, Ship ship)
{
//do stuff with BattleshipBoard and ship
}
同样,调用上述方法的对象是需要将自身作为参数传递的Board对象。我的方法的替代方案是受欢迎的。
答案 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
}
以上是否符合你的要求?