contentRainbowDevilsLandけんじの外部記憶です。kenjiScalaにも抽象クラスがあります。Javaと同じようにabstract修飾子をつけます。Array[String]}contentsメソッドは宣言していますが、定義はありません。定義が無い場合、Javaと違いメソッドの明示的にabstractをつけなくても抽象メンバーとなります。パラメータ無しメソッド次のElementのheightとwidthは括弧がありません。methods)と呼びます。methods)と呼びます。contents(0).length}パラメータが無くミュータブルな状態へのアクセスがオブジェクトのフィールドの読み出しのみの場合はパラメータ無しメソッドを使い、そうで無い場合は空括弧メソッドを使うという習慣があります。defをvalに帰ればメソッドでは無くフィールドとして実装できます。contents(0).length}API利用者からは同じように使えますが、もちろんメソッドとフィールドどちらの実装方法でも動作に違いが無いようにしなければなりません。Javaとの互換性Javaではメソッドの実行とフィールドの参照は記法が区別されています。list.size()やarray.lengthなどです。ScalaはJavaのクラスで同じようにアクセスできるよう、パラメータ無しメソッドと空括弧メソッドはどちらの記法でも呼び出せるようになっています。hogeScalaの関数呼び出しでは、すべての空括弧は省略できます。プロパティの参照以上の意味を持つ場合は空括弧をつける方が良いとなっています。抽象クラスであるElementクラスを継承し、ArrayElementクラスを作ります。Javaと同じようにextends節を記述します。conts}extends節を省略すると、そのクラスは暗黙的にscala.AnyRefを継承します。Javaで言うところのObjectを継承するというのと同じです。メソッドとフィールドのオーバーライドScalaではフィールドとメソッドを統一的に扱っているため、スーパークラスのフィールドをサブクラスのパラメータ無しメソッドでオーバーライドしたり、その逆もできます。そのため、Javaと違い同じ名前でフィールドとパラメータ無しメソッドを定義できません。メソッドがパラメータを取る場合はOKです。1パラメータフィールドの定義Scalaでは、コンストラクタのパラメータをフィールドにすることができます。先ほどのArrayElementは次のように書けます。パラメータにvalをつけるだけです。Replyコメントを投稿するには、下の計算の答えを入力する必要があります。答えは半角数字で入力してください。