- val date = Date()
9. 若何写 Getter 和 Setter 办法
Java 的 Getter 和 Setter 是一种商定俗称,而不是语法特点,所以定义起来相对自由:
- public class GetterAndSetter{
- private int x = 0;
- public int getX() {
- return x;
- }
- public void setX(int x) {
- this.x = x;
- }
- }
Kotlin 是有属性的:
- class KotlinGetterAndSetter{
- var x: Int = 0
- set(value) { field = value }
- get() = field
- }
留意看到,我们为 x 显式定义了 getter 和 setter,field 是 x 背后真正的变量,所以 setter 傍边其实就是为 field 赋值,而 getter 则是返回 field。如不雅你想要对 x 的拜访做控制,那么你就可以经由过程自定义 getter 和 setter 来实现了:
- class KotlinGetterAndSetter{
- var x: Int = 0
- set(value) {
- val date = Calendar.getInstance().apply {
- set(2017, 2, 18)
- }
- if(System.currentTimeMillis() < date.timeInMillis){
- println("Cannot be set before 2017.3.18")
- }else{
- field = value
- }
- }
- get(){
- println("Get field x: $field")
- return field
- }
- }
10. 若何延迟初始化成员变量
Java 定义的类成员变量如不雅不初始化,那么根本类型被初始化为其默认值,比如 int 初始化为 0,boolean 初始化为 false,非根本类型的成员则会被初始化为 null。
推荐阅读
【51CTO.com原创稿件】马云曾经说过,今天的手机因为参加了智能操作体系后,80%的手机功能似乎与打德律风、发信息这种纯真的通信没有了关系;而将来汽车参加YunOS操作体系后>>>详细阅读
本文标题:快速入门Kotlin的11招
地址:http://www.17bianji.com/lsqh/35779.html
1/2 1