どうやら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__っていう意味って理解するとすっきりした気がする。