setter、getter
Kotlin默认帮我们实现了setter、getter,算是setter和getter相关的第一个知识点,除此之外,我们还需要知道setter、getter自定义和setter、getter私有化。
setter、getter自定义
Kotlin帮我们默认实现了setter和getter,我们也可以对setter和getter自定义,修改获取和设置时候的逻辑。
比如,还是Person类,包含age属性和name属性,我们对age的setter和getter做一些简单的自定义,参考代码:
image.png我们可以看到,获取属性的时候,不是默认的“28”了,而是自定义的“18”。设置属性的时候,额外的打印了是否是成年人。
setter私有化
kotlin中变量默认访问修饰符是public,对应setter和getter也都是public,如果不想外界修改属性呢?可以显示修饰setter的访问修饰符是private。那么在外部类中,就无法对属性进行修改了。参考案例:
image.png针对以上代码,看到提示了“Cannot assign to ‘name’:the setter isprivate in ‘Person’。也就是,不能对name属性赋值,因为它的setter方法是私有化的。
网友评论