2016-01-16 34 views
0

我用Java创建简单的游戏引擎隐藏更新功能,我已经得到了一些包如:爪哇 - 项目

  • 游戏
  • 输入
  • 时间
  • 图形

每个软件包都可以处理很多类,其中大多数都具有(应该具有)公共访问权限。我们来关注一个最重要的类MouseInput

MouseInput类只处理像getMousePosition(MouseAxis axis) {...}这样的公共静态方法,但它也处理一些方法,如updateMousePosition() {...}

现在我想让这个方法(updateMousePosition())只能被GameBase这个类包含在Game包中。

P.s.我不想把所有这些类放在一个包里!我想分开他们,不要让我的项目混乱。

2th P.s.我只想通过GameBase进行调用的所有这些方法都是静态的。

+0

那是不可能的。你可以让它们成为package-privat,但是在Java中没有'friend'的概念(就像在C++中一样) – tkausl

+0

但是我知道一些阻止访问某些方法的库/应用程序。 – skprime

+0

他们使用包私有方法 – tkausl

回答

0

通过检查call stack,可以限制谁可以调用公共方法。这为接收呼叫的方法添加了一些代码,但任何“错误”的呼叫都可以被拒绝。