Kotlin变量和属性

基本类型

数字类型中不会自动转型,例如,你不能给Double变量分配一个Int。如果必须分配,就需要给Int做一个类型转换。

举例
举例

字符不能作为一个数字类处理,如果需要,要先转换成Int类型来操作。

字符型作为数字使用

位运算

java中我们使用 |  和& 来表示“或”和“并且”。kotlin中我们使用  or  和  and  来表示“或”和“并且”。

声明变量的时候要写明类型,但也不是必须这样。

val a=12           这样编译器也可以推断出a的类型。

一个字符串可以像数组那样访问,并且可以被迭代

字符串像数组那样被使用

变量

变量有可变(var)和不可变(val)变量两种。val变量和java种的final很相似。

不可变变量意味着它在实例化之后就不能再去改变他的状态了,这让编码更加健壮和预估性。可变变量,在任何地方都可以访问这个变量对象的代码,并修改它,可能会影响程序的其他地方。

不可变变量也可以说是线程安全的,因为他无法去改变,也不需要去定义访问控制,因为所有线程访问的对象都是同一个。

尽可能的使用val。

属性

kotlin种的属性的定义和使用更为简单。

java中的实体类以及访问
省去get和set方法

如果没有指定,属性会默认使用getter和setter,当然你也可以将其修改为自定义的代码。

自定义的get和set方法

如果需要在getter和setter中访问这个属性自身的值,它需要创建一个 backing field。可以使用field这个预留的字段来访问,他会被编译器找到正在使用的并自动创建,需要注意的是,如果我们直接调用了属性,那我们会使用setter和getter而不是直接访问这个属性。backing field只能在属性访问器内访问。

当操作java代码时,kotlin将允许使用属性的语法去访问在java文件中定义的getter/setter方法。编译器会直接找到它最原始的getter/setter方法。所以当我们直接访问属性的时候不会有性能开销。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容