我正在设计一种大富翁游戏来练习我的 Java 技能。
我希望有一个“Space”类来代表游戏板上的空间。像这样的东西。
public class Space{
private Player [] occupants;
private String name;
public Space(String name){
this.name = name;
}
}
我来自Python背景,所以如果我这样做,我可能会使用某种“ Action ”函数来初始化每个空间,该函数对于每个路径都是唯一的。所以像这样。
class Space():
def __init__(self, name):
self.name = name
self.action = None
GO_SPACE = Space()
def GO_ACTION():
## do some processing
GO_SPACE.action = GO_ACTION
本质上是在运行时将函数分配给 Space 对象。我不记得我的语法是否正确,但希望我清楚我想要做什么。每个空间都有自己独特的功能来处理玩家落在其上时的 Action 。
我仍然愿意改变事物的架构方向,但是我如何在 Java 中做这样的事情呢?我承认,我对 Java 的了解有点生疏,但我的第一个想法是尝试以某种方式为私有(private)成员变量分配一个函数......这种方法离题了吗?我不记得 Java 是否有作为对象的函数或类似的东西。
最佳答案
我不明白为什么你需要它是动态的。为什么不这样做:
public abstract class Space {
// name etc.
public abstract void action();
}
public class GoSpace extends Space {
public void action() {
// collect 200 dollars
}
}
等等
关于java - java中的函数作为私有(private)成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624989/