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

| | コメント(0)

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

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の書き方に興味津々です。謎すぎますが、ここはぐっと大人になってスルーしておきます。

コメントする

著者について

高井直人
高井 直人
takai@recompile.net

ソフトウェアエンジニア。1977年横浜生まれ。大学在学中からネットワークや情報技術にたずさわる。Web制作会社などを経て、現在はシステムインテグレータに勤務。エンタープライズRubyをテーマに社内標準の策定などに従事している。

タグクラウド

ウェブページ

Powered by Movable Type 4.1-en-release-26-r1141-20080104