gpt4 book ai didi

Java隐藏方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:09:28 25 4
gpt4 key购买 nike

我正在用 Java 创建一个新的游戏引擎,我想为 GameWindow 类提供一些公共(public)静态方法,如 setTitle()、resize(),但我想再创建一个能够创建整个窗口的方法。该方法应该只能由 Engine 的类访问,以不允许开发人员创建窗口(因此正如我在正确的初始化时刻所说的那样,该方法将仅由 Engine 调用)。

现在如何向世界隐藏这个方法?我正在寻找 C++ 中类似“ friend ”的方式。

这些类(Engine 和 GameWindow 类)位于单独的包中。

P.s.我在其他一些引擎中找到了一种使用抽象类的方法,但如果可能的话,有人可以解释一下如何做到这一点吗?

最佳答案

你可以使用以下技巧:

class GameWindow {
GameWindow() {...}
protected void methodOnlyforEngine() {...}
...
}
class Engine {
private class GameWindowProxy extends GameWindow {
GameWindowProxy(GameWindow ex) { super();...}
}

private final GameWindowProxy proxy;
Engine(GameWindow window) {
proxy = new GameWindowProxy(window);
}
...
proxy.methodOnlyforEngine();
}

关于Java隐藏方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com