« アジャイルレトロスペクティブ――強いチームを育てる「ふりかえり」の手引き | メイン | Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to the Java Platform »

A Scala Tutorial for Java programmers を淡々と写経するよ (4)

前回からだいぶ間がありますが、引き続いて写経していきます。

5. Classes

今回は、クラス定義ですね。とくに変わったことはないようです。メソッドに型を指定する必要はないとのこと。コンパイラが頑張ってくれるようです。

class Complex(real: double, imaginary: double) {
  def re() = real
  def im() = imaginary
}
new Complex(1.5, 2.3)

5.1 Methods without arguments

引数がないメソッドの場合は、()を省略できるそうです。お、なんだかメソッド定義なのに値を設定しているみたいですね。細かいところでセンスよさげです。

class Complex(real: double, imaginary: double) {
  def re = real
  def im = imaginary
}

5.2 Inheritance and overriding

継承もあるようです。スーパークラスを明示的に指定しなくても、Objectを継承していることになっているというのはJavaと一緒ですね。

ただ、メソッドオーバーライドをするためには、override修飾子をつけないといけないんですね。写経してみましょう。

class Complex(real: double, imaginary: double) {
  def re = real
  def im = imaginary
  override def toString() = "" + re + (if (im < 0) "" else "+") + im + "i"
}

つけないでコンパイルを試したところ「method toString needs `override' modifier」と怒られてしまいました。というか、ifの書き方に興味津々です。謎すぎますが、ここはぐっと大人になってスルーしておきます。

トラックバック

このエントリーのトラックバックURL:
http://recompile.net/apps/mt-tb.cgi/164

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年10月 2日 18:49に投稿されたエントリーのページです。

ひとつ前の投稿は「アジャイルレトロスペクティブ――強いチームを育てる「ふりかえり」の手引き」です。

次の投稿は「Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to the Java Platform」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。