Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对一组相关的数据成员和函数进行分组,其中该组必须只有一个实例?_Java_Oop_Object_Inner Classes - Fatal编程技术网

Java 如何对一组相关的数据成员和函数进行分组,其中该组必须只有一个实例?

Java 如何对一组相关的数据成员和函数进行分组,其中该组必须只有一个实例?,java,oop,object,inner-classes,Java,Oop,Object,Inner Classes,考虑一下,我正在为简单扫雷游戏的类GUIManager编写代码 这里, 但我真正感到不安的是 我只需要每个内部类的一个实例。 我创建这些内部类只是为了促进分组和可读性 无法将blockquote中给出的信息与此代码的未来开发人员进行沟通 所以我的问题是, 任何特殊类型的类都是可能的,因此只能创建该类的一个对象?i、 创建2个对象将导致编译错误。或者我现在必须做什么来坚持封锁信息 更糟糕的是 public class GUIManager extends JFrame {

考虑一下,我正在为简单扫雷游戏的类GUIManager编写代码

这里,

但我真正感到不安的是

我只需要每个内部类的一个实例。 我创建这些内部类只是为了促进分组和可读性

无法将blockquote中给出的信息与此代码的未来开发人员进行沟通

所以我的问题是,

任何特殊类型的类都是可能的,因此只能创建该类的一个对象?i、 创建2个对象将导致编译错误。或者我现在必须做什么来坚持封锁信息

更糟糕的是

public class GUIManager extends JFrame 
 {       
      final GameBoardManager gUIGameBoard;
      final BoardMenuBar menuBar;
      final GameInfoDisplayer gameInfoDisplayer;
      final DataManager dataManager;
      final IconManager   iconManager;
      .....    
 } 
在访问元素时,我必须使用gUIGameBoard.boardButton[]]、gUIGameBoard.dimensionOfBoard、gUIGameBoard.boardColor等

以这种方式访问时,听起来像。。我有许多GameBoardManager的对象,在这里我正在访问gUIGameBoard的元素。但真正的事实是只有一个GameBoardManager只有GUI管理员才有可能。这与其他内部对象类的情况类似

因此我的问题是?
对于GUI管理器,我必须只有一个GameBoardManager,是否可以在不创建内部类的情况下对相关项进行分组。因为,在访问内部类对象时,听起来我有很多。如果所有内部类的构造函数都是私有的,那么除了GUIManager之外,没有人能够实例化一个。添加注释,这是一种合理的方法

然而,您的类可能需要重新构造-这是许多内部类

public class GUIManager extends JFrame 
 {       
      final GameBoardManager gUIGameBoard;
      final BoardMenuBar menuBar;
      final GameInfoDisplayer gameInfoDisplayer;
      final DataManager dataManager;
      final IconManager   iconManager;
      .....    
 }