В scala, если вы не укажете модификатор, поля экземпляра будут по умолчанию открытыми:
scala> class Foo { var foo = 1 }
defined class Foo
scala> class Bar { def bar() = { val f = new Foo; f.foo = 5; }}
defined class Bar
Не беспокойтесь.Однако, когда вы используете переменную в конструкторе, переменная не обязательно превращается в поле:
scala> class Foo(foo: Int)
defined class Foo
scala> class Bar { def bar() = { val f = new Foo(5); println(f.foo) }}
<console>:8: error: value foo is not a member of Foo
class Bar { def bar() = { val f = new Foo(5); println(f.foo) }}
^
, поэтому вы можете объявить ее как val или var, чтобы она была доступна:
scala> class Foo(val foo: Int)
defined class Foo
scala> class Bar { def bar() = { val f = new Foo(5); println(f.foo) }}
defined class Bar
Обратите внимание, что все поля на самом деле являются закрытыми, но scala предоставляет методы доступа (foo () и foo _ = (t: Int)), чтобы вы могли получить доступ к полям), поэтому scala-ide говорит, что поля являются частными (при условии, что вы имеете в виду, когда наводите курсор на переменную).