kotlin: 类的扩展属性和扩展函数
一,代码:
class VmListActivity : AppCompatActivity() {
private lateinit var binding: ActivityVmListBinding //binding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
//使用binding
binding = ActivityVmListBinding.inflate(layoutInflater)
setContentView(binding.root)
//处理按钮点击事件
binding.button.setOnClickListener {
val tom = Student()
println("默认名字:"+tom.name)
tom.name = "王长贵"
tom.age = 37
println("名字:"+tom.name)
println("年龄:"+tom.age)
//tom的虚岁年龄
tom.olderAge = 55
println("年龄:"+tom.age)
println("虚岁年龄:"+tom.olderAge)
println("信息:"+tom.nameAndage)
println("翻转后名字:"+tom.nameReverse())
tom.printScore()
}
}
}
open class Student {
var name : String = "Tom"
var age : Int = 18
var score: Float = 60.0F
}
//扩展变量属性
var Student.olderAge : Int
get() {
return this.age + 1
}
set(value) {
this.age = value - 1
}
//扩展常量属性
val Student.nameAndage : String
get() {
return "${this.name} : ${this.age}"
}
//扩展方法:把名字翻转
fun Student.nameReverse(): String {
return this.name.reversed()
}
//扩展方法:打印分数
fun Student.printScore(): Unit {
println("当前分数:"+this.score)
}
二,测试效果:
