Android 10 Kotlin编程通俗演义
上QQ阅读APP看书,第一时间看更新

1.2 大道至简

在学习Kotlin之前,首先要记住一句话:新式语法的一个重要目标是简化。简化的目的是什么呢?减少码字量!只要记住这句话,就会觉得那些奇怪的语法越来越“可爱”。

首先我们来体验一下什么叫简化,比如下面这个Java类:

这种类的写法是如此固定,字段(Field,即类的成员变量)名决定了getter和setter方法的命名,所以getter和setter方法的名字是可以推断出来的,getter和setter仅仅是对字段的包装,并没有什么逻辑在里面,这跟直接暴露字段有什么区别?我们可不可以改进一下,把getter和setter省略掉呢?

字段变成了public,但是与之前的代码最终没有什么实质的不同。

这里要解释一下,虽然直接暴露字段不符合封装的思想,但是可以改进一下编译器,把这些字段当作属性,自动编译出getter、setter和对应的字段变量。

继续研究:构造方法的写法似乎也可以省略。因为所有字段的值都需要通过构造方法的参数传进来,所以构造方法的参数与字段是一一对应的,而且习惯上我们还喜欢让参数名与字段名相同。可以试着改进一下Java语法,支持下面这种写法:

     class ContactInfo(public Bitmap bitmap,
                public String title,
                public String detail) {
     }

直接把构造方法与类声名结合起来,让编译器根据构造参数创建字段。于是,来到了Kotlin的世界:

     class ContactInfo(val bitmap: Bitmap,val title: String, val detail: String ){}

注意

在Kotlin中,用val定义常量、var定义变量,常量或变量的类型放在符号名后面,并用冒号分隔开,这一点与Java很不相同。

Kotlin的目标是什么?少写字!既然类的内容是空的,就把大括号也省略。所以,这样写也行(注意,最后不必加分号,Kotlin不喜欢分号):

     class ContactInfo(val bitmap: Bitmap,val title: String, val detail: String )