剛剛來自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