access modifers in scala with var and val

前端 未结 2 573
陌清茗
陌清茗 2021-01-28 05:26

I am getting confused in use of var and val in access modifers, name is var , therefore we can change it, it is ok. But p is val, how we are able to change the p.name = \"Fred F

2条回答
  •  爱一瞬间的悲伤
    2021-01-28 06:08

    You should remember that variables are just references. So when you create variable with val it means that you can't assign new reference to it. In var case its possible.

    As you see when you create val p = new Person("Alvin Alexander") p will have reference to same Person object always. You can't create another Person and assign it to p

    But any person instance has var name variable which is reassignable to new strings.

    As a result final p has reference to mutable Person instance.

提交回复
热议问题