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)
}

二,测试效果:

 

posted @ 2025-06-28 13:04  刘宏缔的架构森林  阅读(10)  评论(0)    收藏  举报