オブジェクトの定義

オブジェクトの定義

scala> object Simple
defined module Simple

scala> new Simple
<console>:6: error: not found: type Simple
       new Simple
           ^

scala> object OneMethod {
     | def myMethod() = "only one"
     | }
defined module OneMethod

scala> OneMethod.myMethod
res1: java.lang.String = only one

scala> object Dude extends Yep
defined module Dude

scala> Dude.myMethod
<console>:11: error: value myMethod is not a member of object Dude
       Dude.myMethod
            ^

scala> Dude.myhello
<console>:11: error: value myhello is not a member of object Dude
       Dude.myhello
            ^

scala> Dude.hello
res4: Int = 4

scala> Dude.meow
res5: String = Meeeeeeeeeeow

scala> object Dude2 extends Yep {
     | override def meow() = "Dude looks like a cat"
     | }
defined module Dude2

scala> Dude2.meow
res6: java.lang.String = Dude looks like a cat

scala> object OtherDude extends Yep {
     | def twoMeows(parm: Yep) = meow + ", " + parm.meow
     | }
defined module OtherDude

scala> OtherDude.meow
res7: String = Meeeeeeeeeeow

scala> OtherDude.twoMeows(Dude)
res8: java.lang.String = Meeeeeeeeeeow, Meeeeeeeeeeow

scala> OtherDude.twoMeows(Dude2)
res9: java.lang.String = Meeeeeeeeeeow, Dude looks like a cat

scala> class HasYep {
     | object myYep extends Yep {
     | override def meow = "Moof"
     | }
     | }
defined class HasYep

scala> (new HasYep).myYep.meow
res10: java.lang.String = Moof

scala> class HasClass {
     | private class MyDude extends FuzzyCat
     | def makeOne(): FuzzyCat = new MyDude
     | }
defined class HasClass

scala> (new HasClass).makeOne.meow
res11: String = Meeeeeeeeeeow

scala> object Moose {
     | def bark = "Woof"
     | }
defined module Moose

scala> import Moose._
import Moose._

scala> bark
res12: java.lang.String = Woof