Параметры конструктора scala по умолчанию имеют значение private val?

Я пытался:

class Foo(bar: Int)

против:

class Foo(private val bar: Int)

и они, кажется, ведут себя одинаково, хотя я не могнигде не говорят, что(bar: Int) расширяется до(private val bar: Int) поэтому мой вопрос, они идентичны / похожи?

На заметку, я пытался использовать-Xprint:typer на этих фрагментах кода, и они производят тот же код, за исключением дополнительной строки во второй. Как мне прочитать эту дополнительную строку?

..
class Foo extends scala.AnyRef {
   private[this] val bar: Int = _;
  def (bar: Int): this.Foo = {
    Foo.super.();
    ()
  }
}
..


..
class Foo extends scala.AnyRef {
   private[this] val bar: Int = _;
     private def bar: Int = Foo.this.bar;
  def (bar: Int): this.Foo = {
    Foo.super.();
    ()
  }
}
..

Ответы на вопрос(2)

Ваш ответ на вопрос