我刚从 Haskell 毕业后正在学习 Java,我正在尝试建立一个小类(class)来代表一个通用机器人。我想添加的实例变量之一是机器人位置的某种表示。
在 Haskell 中,我会做类似的事情:
type Point = (Float, Float)
data Robot = Robot { position :: Point }
但是,据我所知,Java 没有任何此类别名或元组,因此我必须换一种方式来看待它。
我想创建另一个名为 Point 的类,并为其提供 2 个实例变量“x”和“y”(或者,理想情况下是更具描述性的变量),但这看起来很笨拙。我必须在它自己的文件中定义它(如果我没记错的话,每个类都在一个单独的文件中),而且它只有几行长(除非我需要添加功能,比如“运动”)。
我的另一个想法是做类似的事情:
public class Robot {
...
int xPos;
int yPos;
...
}
这更困惑,但更紧凑。
基本上,这一切都可以总结为:
在 Java 中是否典型地将程序分成大量较小的部分,而不管这些部分的大小?或者,如果重复使用的机会很小,是否通常将事物组合在一起?
(我知道理想情况下,一切都被视为将来可能会被重复使用,并被切割成一百万个子文件,但应该遵循到什么程度;尤其是在初始学习期间?)
最佳答案
答案是肯定的 :) 通常会在它们自己的文件中看到非常小的类,而一些其他功能可能是它自己的类,但事实并非如此。
为了以某种层次结构组织代码,您还可以看到内部类。当您知道此功能不会在外部使用,但与代码的其他部分有太多差异而无法保持在同一级别时,通常会使用这些内部类。
根据经验,我喜欢将新类的创建推迟到我知道我在其他地方需要它的时候,但我想这取决于程序的架构。
关于java - 我应该如何用 Java 组织这些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27094316/