java - java中的函数作为私有(private)成员变量

标签 java function object dynamic private-members

我正在设计一种大富翁游戏来练习我的 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/

相关文章:

jquery - 如何使用 jQuery 垂直对齐具有不同高度的多个图像?

python - 需要在 Python 中使用多个文件进行编程方面的帮助

javascript - 检查object.property的值是value1还是value2

c++ - 实现动态创建的类对象数组(C++)

java - AWS EMR YARN 容量调度程序配置

java - 沿已知角度画一条已知距离的线

java - 自定义 JComboBox 顶部标签

python - 递归函数计算某个序列出现的次数

java - 如何从方法返回接口(interface)

apache-flex - 如何在运行时打印出对象内存地址?就像java中的this.toString()