The excellent Scala Programming book has a pretty good explanation :
class Outer {
class Inner
}
Scala Outer#Inner Java Outer.Inner. . . , , Outer, :
val o1 = new Outer
val o2 = new Outer
o1.Inner o2.Inner ( ). ( ) Outer#Inner, Inner Outer. , o1.Inner Inner ( o1). , o2.Inner Inner , ( o2).
Scala, Java, . , , . , , . - . ( ). - . , , o1.Inner, , :
scala> new o1.Inner
res1: o1.Inner = Outer$Inner@13727f
, , o1. , Outer#Inner - Outer, :
scala> new Outer
<console>:6: error: Outer is not a legal prefix for
a constructor
new Outer
^