Scala构造器和getter setter方法

构造器创建模式
方式一
class test(private var name:String){}
class student(var name="Zhangsan"){}
这种构造方式会默认生成一主构造器,并且调用类中的所有定义的成员语句(对比java,java中默认是没有定义的成员语句语句,即编译报错。ps.成员语句,自己起名o.o~,譬如在类中执行system.out.println(1),该语句定义的位置为成员变量相同的位置)。同样辅助构造器可以通过this调用主构造器,类比java的构造器重载
方式二
class test(name:String){}同样会调用成员语句,与方式一的区别在于传递的参数没有被var和val修饰,当调用的成员语句中使用到name时,name会升格为字段,有点像java中接口被使用时才有其具体的实现的道理
方式三
即辅助构造器,类似java中的构造器

Getter和setter方法
1当字段被var 修饰时,Scala会为字段默认生成getter和setter方法,
2当被val修饰时,只生成getter方法,因为val是不可变的,无法从方法中去改值。
3你也可以自己定义getter和setter方法,表现形式为name和name_
4当字段被@beanProperty修饰时,不仅会生成scala版本的g和s方法,而且会生成java的getter和setter方法,可以通过javap -c 反编译字节码查看
5当然你也可以像java去定义构造器,不喜欢scala的方式可以用java方式,但scala似乎不喜欢java中可以用ide快捷键生成的代码,所以在编译时,默认生成了

你可能感兴趣的:(Scala构造器和getter setter方法)