屬性的聲明
你肯定知道渗柿,類的概念就是把數(shù)據(jù)和處理數(shù)據(jù)的代碼封裝成一個(gè)單一的實(shí)體饱亮。在java中奠宜,數(shù)據(jù)存儲(chǔ)在字段中沫屡,通常還是私有的踏志。如果想讓類的使用者訪問到數(shù)據(jù)柴梆,得提供訪問器方法:get和set方法,這是java中的慣用方式壹无。
kotlin也必須適應(yīng)java開發(fā)者的習(xí)慣和編譯器工作方式葱绒,同時(shí)更主要的還得滿足與java代碼的混合編程。針對(duì)下面幾種屬性的聲明格遭,看看怎么對(duì)應(yīng)對(duì)應(yīng)到j(luò)ava代碼上哈街。
private var name1: String? = null
var name2: String? = null
val name3: String? = null
name1的可見性是本類中留瞳,是不允許外部訪問的可變變量拒迅,name2是允許外部訪問的可變變量,name3是允許外部訪問的不可變變量她倘。編譯器會(huì)把代碼編譯成java代碼璧微,對(duì)應(yīng)的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類型屬性未只讀屬性,只會(huì)生成get方法硬梁。而var為可寫方法前硫,會(huì)生成get、set方法荧止,對(duì)于private私有屬性屹电,不會(huì)生成get或者set方法。