Java工具(框架)都依赖这个命名习惯。为了Java的互操作性。将Scala字段加@BeanProperty时,这样会自动生成规范的setXxx/getXxx方法。这时可以使用 对象.setXxx()和 对象.getXxx()来调用属性
注意:给某个属性加入@BeanPropetry注解后,会生成getXxx和setXxx的方法,并且对原来底层自动生成类似xxx(),xxx_$eq()方法,没有冲突,二者可以共存
import scala.beans.BeanProperty
object boke_demo01 {
def main(args: Array[String]): Unit = {
val car = new Car
car.name = "宝马"
println(car.name)
//使用 @BeanProperty 自动生成 getXxx 和 setXxx
car.setName("奔驰")
println(car.getName())
}
}
class Car {
@BeanProperty var name: String = null
}
6.5 Scala对象创建的流程分析
6.5.1 看一个案例
class Person {
var age: Short = 90
var name: String = _
def this(n: String, a: Int) {
this()
this.name = n
this.age = a
}
}
var p: Person = new Person ("小倩", 20)
6.5.2 流程分析(面试题-写出)
1) 加载类的信息(属性信息,方法信息)
2) 在内存中(堆)开辟空间
3) 使用父类的构造器(主和辅助)进行初始化
4) 使用主构造器对属性进行初始化[age:90, name:null]
5) 使用辅助构造器对属性进行初始化[age:20, name:小倩]
6) 将开辟的对象的地址赋给p这个引用