[英]Java Interface Inner Class
我還在用java編寫戰艦游戲。
我在模塊化方面遇到了麻煩:我需要使用接口構建數據類(模型)。
我得到的想法是建立一個這樣的類層次結構:
BattleGrid =>一些方法,Grid => int rows,int cols,Cell [] [] grid => char內容
這意味着:
1.公共類是BattleGrid類(提供外部方法的類,如initGrid(),placeShip()等...);
2.然后在里面有另一個類Grid,它包含材質網格和一些信息,如網格行和網格列;
在每個細胞內部,都有該細胞的內容。
(顯然所有人都有安裝者和/或吸氣劑)
問題是:當我通過BattleGrid接口寫這個時,內部類會自動聲明為public static。
這種結構的正確方法是什么?
這就是接口的工作方式。 公共界面中的所有內容都是公開的。 如果你有成員變量,它們將自動為靜態。 嘗試使用抽象類或將成員變量移動到實現類。
你的問題很廣泛,但我會試着回答它:最好盡量保持簡單:
在設計界面時,請關注所需的外部功能,並完全忽略它的實現方式。
例如,如果您需要BattleGrid
能夠在外部提供Grid
,則可以將它們聲明為與Grid getGrid();
單獨接口Grid getGrid();
作為BattleGrid
一種方法。 在編寫BattleGrid
實現時,您可以選擇通過將Grid實現作為BattleGrid
的內部類來BattleGrid
,但這與BattleGrid
接口沒有任何關系。
如果您不需要BattleGrid
從外部提供Grid
,請不要在BattleGrid
界面中提到Grid
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.