属性的声明
你肯定知道,类的概念就是把数据和处理数据的代码封装成一个单一的实体。在java中,数据存储在字段中,通常还是私有的。如果想让类的使用者访问到数据,得提供访问器方法:get和set方法,这是java中的惯用方式。
kotlin也必须适应java开发者的习惯和编译器工作方式,同时更主要的还得满足与java代码的混合编程。针对下面几种属性的声明,看看怎么对应对应到java代码上。
private var name1: String? = null
var name2: String? = null
val name3: String? = null
name1的可见性是本类中,是不允许外部访问的可变变量,name2是允许外部访问的可变变量,name3是允许外部访问的不可变变量。编译器会把代码编译成java代码,对应的java代码:
private String name1;
private String name2;
private String name3;
public void setName2(String name) {
this.name2 = name2;
}
public String getName2() {
return name2;
}
public String getName3() {
return name3;
}
val类型属性未只读属性,只会生成get方法。而var为可写方法,会生成get、set方法,对于private私有属性,不会生成get或者set方法。