まず、リスト1のようにMoneyクラスを宣言します。前述したように、クラス宣言のデフォルト(既定)のアクセス修飾子はpublicです。Javaだと同一パッケージ内からしかアクセスできないパッケージプライベートですが、Scalaでは何も記述しなければpublicです。 Moneyクラスには、二つの属性があります*1。金額の量を表すBigDecimal型のamountと、円やドルなどそのお金の単位(通貨単位)を表すCurrency型のcurrencyです*2。 この説明だけでは、理解しにくいと思うので、段階を追って解説しましょう。リスト1のコードを省略しないで記述したのがリスト2です。Scalaでは、クラス名の後ろにコンストラクタの引数の仕様を記述し、(1)のブロックがコンストラクタの処理ブロックとなります。このコンストラクタを基本コンストラクタ(primary constructor)と呼び