简要介绍
一开始接触Kotlin,就发现Kotlin是采用属性访问的,和之前Java的Get/Set方法不一样.不过感觉这也没有什么牛B的,因为Java只要把字段设置为public,那也是可以通过属性访问的.
类样例
- Java代码
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- Kotlin代码(相比于Java,简介很多啊)
class User {
var name :String?=null
}
访问方式对比
- Java方式(通过Get/Set):
user.setName("jerry");
String name = user.getName();
- Kotlin方式
user.name = "jerry"
val name = user.name
- Java属性方式(属性设置为public)
user.name = "jerry";
String name = user.name;
差异分析
- Java里属性之所以提倡采用Get/Set访问,是因为希望提供一种隔离以适应变化.
如上面User中的name属性,虽然我们设置为jerry,但是如果希望获取name时变成大写的,那就可以在Get或Set方法中做文章,而Java方式如果改成属性方式后,则无法再采用上面方式适应变化了.
public String getName() {
return name.toUpperCase();
}
或
public void setName(String name) {
this.name = name.toUpperCase();
}
- 那Kotlin是适应上述变化,该如何做呢?
var name :String?=null
get() = field?.toUpperCase()
或
var name :String?=null
set(value) {
field = value?.toUpperCase()
}
如果要将属性设置为只读的,可以在get前面增加private即可.
var name :String?=null
private set
总结
Kotlin相比于Java的写法更为简洁,同时又保持了扩展性,故值得一试哦.
安卓开发技术分享: https://www.jianshu.com/p/442339952f26
点击关注专辑,查看最新技术分享
更多技术总结好文,请关注:「程序园中猿」
网友评论