クラスの定義

クラスの定義

scala> class Foo
defined class Foo

scala> new Foo
res0: Foo = Foo@1f40e1f

scala> new Foo()
res1: Foo = Foo@18efd7c
scala> class Bar(name: String)
defined class Bar

scala> new Bar()
<console>:7: error: not enough arguments for constructor Bar: (name: String)Bar.
Unspecified value parameter name.
       new Bar()
       ^

scala> new Bar
<console>:7: error: not enough arguments for constructor Bar: (name: String)Bar.
Unspecified value parameter name.
       new Bar
       ^

scala> new Bar("")
res4: Bar = Bar@f4da6d

scala> new Bar ""
<console>:1: error: ';' expected but string literal found.
       new Bar ""
               ^

scala> new Bar(null)
res6: Bar = Bar@47c130
scala> class Baz(name: String) {
     | if (name == null) throw new Exception("Name is null")
     | }
defined class Baz

scala> new Baz
<console>:7: error: not enough arguments for constructor Baz: (name: String)Baz.
Unspecified value parameter name.
       new Baz
       ^

scala> new Baz()
<console>:7: error: not enough arguments for constructor Baz: (name: String)Baz.
Unspecified value parameter name.
       new Baz()
       ^

scala> new Baz(null)
java.lang.Exception: Name is null
        at Baz.<init>(<console>:6)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at RequestResult$.<init>(<console>:9)
        at RequestResult$.<clinit>(<console>)
        at RequestResult$scala_repl_result(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at scala.tools.nsc.Interpreter$Request$$anonfun$loadAndRun$1$$anonfun$apply$17.apply(Interpreter.scala:988)
        at scala.tools.nsc.Interpreter$Request$$anonfun$loadAndRun$1$$anonfun$apply$17.apply(Interpreter.scala:988)
        at scala.util.control.Exception$Catch.apply(Exceptio...
scala> new Baz("")
res10: Baz = Baz@1845568