コマンドプロンプトで試した結果です。
toString、hashCode、equalsメソッドを持ちます。
new演算子無しでインスタンスを作成できる。
クラス変数はデフォルトはval(イミュータブル)、varを付ければミュータブルにできる。
Matchで比較もできる。
◆インスタンス作成
scala> case class Address(name: String,age: Int,tel: Int)
defined class Address
scala> val acha = Address("boo",100,1234567890)
acha: Address = Address(boo,100,1234567890)
◆中身を確認
scala> acha.name
res__: String = boo
scala> acha.age
res1: Int = 100
scala> acha.tel
res__: Int = 1234567890
◆更新は行えない
scala> acha.name = "fuu"
:__: error: reassignment to val
acha.name = "fuu"
◆更新するには「var」
scala> val porute = Address2("fuu",200,987654321)
porute: Address2 = Address2(fuu,200,987654321)
scala> porute.name
res__: String = fuu
scala> porute.name = "woo"
porute.name: String = woo
scala> porute.name
res__: String = woo
◆Matchしてみる
scala> val piipo = Address("woo",300,111111111)
piipo: Address = Address(woo,300,111111111)
scala> piipo match {
| case Address(name,age,tel) => println( name , age , tel )
| }
(woo,300,111111111)