刚刚来自Haskell,我正在学习Java,我正在尝试设置一个小类来表示一个通用机器人。我想添加的一个实例变量是机器人位置的某种表示形式。我应该如何在Java中组织这些数据?
在Haskell,我刚才做类似:
type Point = (Float, Float)
data Robot = Robot { position :: Point }
但是,从我所知道的,Java没有任何这样的混淆,或元组,因此我不得不看这是另一种方式。
我以为只是创造名为Point的另一个类,并给它2个实例变量“X”和“Y”(或者,最好的东西多一点的描述),但似乎笨拙。我必须在它自己的文件中定义它(如果我正确记得每个类都在一个单独的文件中),并且它只有几行(除非我需要添加功能,比如“运动”)。
我的另一个想法是,只是这样做:
public class Robot {
...
int xPos;
int yPos;
...
}
这是混乱的,但更紧凑。
基本上,这可能是所有来概括:
它是典型的在Java中的一块大小的程序分离成吨的小块,不管?或者,如果再次使用的可能性很小,是否可以将它们组合在一起? (我知道理想情况下,所有事情都被视为将来可能被重复使用,并被切割成百万个子文件,但应该在多大程度上遵循这些要求;特别是在初始学习期间?)。
一类就是在Java中的约定。你可以选择忽略它(或者使用内部类来解决这个问题)。 – Drux 2014-11-23 21:12:03
已经有一个['Point'](https://docs.oracle.com/javase/7/docs/api/java/awt/Point.html)可以使用。但要回答你的主要问题,这主要是基于选项的,但我会说,如果一个Java程序不会被分成“一吨”较小的碎片,那么有些事情是错误的...... – 2014-11-23 21:12:12
@Drux我试着在同一个文件中声明2个类,并且吐出一个错误(不能完全引用它,但基本上说“类x必须在它自己的文件中”)。除非在主类文件中只有这种情况。在鲍里斯,谢谢。我想我必须习惯这一点。 – Carcigenicate 2014-11-23 21:25:03