我最近有一个家庭作业问题,我们应该在棋盘上工作,并在棋盘上放置一些女王.
这个问题在困难方面是微不足道的,但我想问的是:
我应该只创建一个布尔二维数组并将包含一个皇后的每个位置更改为1,还是应该创建一个私有类来表示一个皇后,它有x和y坐标作为实例变量?
这可能看起来不是很重要或者很紧迫,但我正在使用Java,它有点接近OO编程概念的核心.如果我们从不使用Java的模块化功能,那么为什么要使用Java呢?我们不妨在C或Python中编写相同的东西.
你认为哪种更合适?如果你可以将你的答案限制在理性支持的答案而不是意见或个人偏好,我将不胜感激.
我应该只创建一个布尔二维数组并将包含一个皇后的每个位置更改为1,还是应该创建一个私有类来表示一个皇后,它有x和y坐标作为实例变量?
这些问题没有一个通用的答案.任何一个都适合特定情况,解决具体问题.
如果我们从不使用Java的模块化功能,那么为什么要使用Java呢?我们不妨在C或Python中编写相同的东西.
Java是OO语言这一事实并不意味着我们必须为我们需要表示的每个数据片段定义和使用类和对象.
如果我正确理解您的问题,您就会询问实施细节.面向对象的编程并不是特别关注具体的实现细节,因为它关注的是将这些实现细节封装在合适的接口背后,该接口很好地代表了一些重要的域概念.因此,类的客户端不需要知道也不需要考虑它的实现细节,只需要考虑接口所代表的更高级抽象.