どうやらobjectがclassってのは間違いのようだ
何日か前にscalaではJavaでいうclassはobjectって書くと書いたけど、それは間違っていたようだ。
classはやっぱりclassみたい。
scalaではclassはコンストラクタもかねてclass クラス名(){}でかけるようだ。
では、objectっていうのはなにか?
objectはmoduleって位置づけのようだ。
だから、
class Hoge(){ } var hoge = new Hoge
のようにnewできる。
objectだと、
object Piyo{ } var piyo = new Piyo
だとエラーになる。
よくみたら、objectで作ったらdefined module Piyoってでてた。
コンストラクタがないからか?と思ってPiyoのなかにdef Piyoなんて
つくってみたけど結果は同じ。
じゃあ、これは?
object Hoge { def main(args : Array[String]){ System.out.println("hogehoge"); } }
Javaだとobjectってとこclassじゃん?
で、もう少し頭をひねった。
実はこれPythonでいったら、
object Hogeっていうのはモジュールファイルに相当して
def mainは__name__属性が__main__っていう意味って理解するとすっきりした気がする。