![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
スカラでenum使わずにsealed使う話はこの辺かな kmizu.hatenablog.com/entry/20110616… qiita.com/suin/items/5e5… xerial.org/scala-cookbook… #怖くないScala勉強会
2014-10-10 19:48:17![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
コンパニオンの話 Scalaオブジェクトメモ(Hishidama's Scala object Memo) ne.jp/asahi/hishidam… #怖くないScala勉強会
2014-10-10 19:51:19![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
”オブジェクトは、クラス名と同じ名前を付けることが出来る。そういうオブジェクトをコンパニオンオブジェクト(companion object)と呼ぶ。” ne.jp/asahi/hishidam… #怖くないScala勉強会
2014-10-10 19:51:54![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
"sealedを使うと、同一ソースファイル内のクラスは継承できるが、別ファイルのクラスからは継承できなくなる。" なのか #怖くないScala勉強会
2014-10-10 19:55:57![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
Javaのstaticだと静的に解決されるため、多態的に振る舞えない。Scalaのobjectならtraitをmixinしたりクラスを継承してオーバーライドして振る舞いを変える事が出来る #怖くないScala勉強会
2014-10-10 19:56:39![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
"Playとかいうフレームワークのソースはカジュアルにファイルの中にクラスを書いてるからコードを追いづらい" #怖くないScala勉強会
2014-10-10 20:08:57![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
@s01 異なる値のインスタンスはかならず異なる値を返してね、というメソッドです。Javaでは何も実装しないとフィールドの値が同じでもインスタンスが違うと違う値を返してしまうので自前でがんばって実装しないといけません(普通IDEに作らせますが) #怖くないScala勉強会
2014-10-10 20:13:52![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
case classはコンストラクタのフィールドが自動的にvalになる #怖くないScala勉強会
2014-10-10 20:14:00![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
case classだとコンストラクタでパラメータプロパティ宣言できるのかー #怖くないScala勉強会
2014-10-10 20:14:03![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
#怖くないScala勉強会 traitにあえてフィールド変数もたせて、それを結果的にcaseクラスのコンストラクタに定義せざるを得ないのは、完全コンストラクタを作ろうという目的のため??
2014-10-10 20:14:17![](https://tgfile.tg-static.com/static/web/img/placeholder.gif)
class PersonalUser(val name: String, val address: String, val age: Int) extends User みたいにも書ける #怖くないScala勉強会
2014-10-10 20:14:56