Scala构造函数参数带val和不带val的区别

class Person(name: String, age: Int) 类似Java中的
class Person {
  public Person(String name, int age) {
  }
} 
这种情况下name,age只是构造方法的参数 属于局部变量


class Person(var name: String, var age: Int) // also we can use 'val' 类似java中的
class Person {
  String name;
  int age;

  public Person(String name, int age) {
     this.name = name;
     this.age = age;
  }
}
这种情况下name,age不仅是构造方法的参数 也是成员变量

class Test(name: String){
def test(): Unit ={
println(name)
}
}
这种情况下name由构造方法的参数 升级为 成员变量(也就是说当有其他方法用到构造方法参数时,构造方法参数由局部变量升级为成员变量!)
 
 
 
posted on 2022-05-31 15:05  吴玉川  阅读(82)  评论(0)    收藏  举报