Kotlin系列之类和属性
這一節我們學習Kotlin的類和屬性。
學習過Java的小伙伴對面向對象應該不會陌生吧。雖然說Kotlin支持直接在文件中寫函數,但是它同樣支持面向對象,下面就來了解一下Kotlin的類和屬性相關的知識。
Kotlin的類
Kotlin中類的聲明也是使用class關鍵字,下面我們通過對你Java代碼和Kotlin代碼來學習。
Java代碼
public class People {private final String name;public People(String name){this.name = name;}public String getName() {return name;} } 復制代碼Kotlin代碼
class People(val name: String) 復制代碼你沒有看錯,就是這么簡潔,對于我們常用的Java 的構造函數初始化成員變量,Kotlin直接省略了代碼,默認支持。同時,Kotlin中默認的可見性是public,所以此處省略了。
Kotlin的屬性
在Java中我們經常會聲明一個類,表示一個實體,然后在其中聲明私有屬性和對應的getter和setter方法,就如下面一樣。
Java代碼
public class People {private String name;private String age;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;} } 復制代碼我們看看Kotlin中的寫法
Kotlin代碼
class People {var name: String? = nullvar age: String? = null } 復制代碼是不是很簡潔,上面的代碼有如下幾點需要注意。
1 . var關鍵字表明這個變量是可變的,也就是可以反復賦值的。
2 . 聲明格式是 關鍵字 變量名: 變量類型,這里還賦值為null。
3 . ?表示這是一個可空的屬性,也就是可以為null的屬性。
我們發現上面的代碼沒有getter和setter方法,其實Kotlin默認為我們生成了,只是不需要顯式寫出來而已。
同時還有幾點需要注意
1 . Kotlin為var變量默認生成getter和setter方法,功能與Java的getter和setter方法一致。
2 . Kotlin為val變量默認生成getter方法,由于val只能賦值一次,自然就沒有setter方法啦。
Java和Kotlin的互操作
前面的內容我們說過Kotlin是一門專注于互操作性的語言,可以與Java無縫結合。那么我們如何在Java中使用Kotlin的類呢。
Kotlin代碼
class People {var name: String? = nullvar age: String? = null } 復制代碼這是上面的代碼塊,下面我們先來看看在Kotlin中如何使用這個類。
fun main(args: Array<String>){val people = People();people.age = "12";people.name = "bingjianit";println(people.age + " " + people.name); } 復制代碼輸出結果
12 bingjianit 復制代碼你會發現與Java有以下幾點不同
1 . 不需要new一個對象
2 . 可以直接通過對象.屬性來取值或者賦值
下面看看上面的代碼在Java中如何調用
public class Main {public static void main(String[] args) {People people = new People();people.setName("bingjianit");people.setAge("12");System.out.println(people.getName() + " " + people.getAge());} } 復制代碼你會發現雖然Kotlin代碼中沒有getter和setter方法,但是在Java代碼中可以直接調用getter和setter代碼。
注意: Kotlin默認我我們生成的getter和setter方法的規則與Java中自動生成getter和setter的規則相同,但是當一個變量以is開頭時,它的getter方法就是變量本身,setter方法是去掉is加上set前綴。 例子
Kotlin代碼
class People {var name: String? = nullvar age: String? = nullvar isRunnable: Boolean? = null } 復制代碼Java代碼
// 去掉is加上set前綴 people.setRunnable(true); //getter方法是變量本身,沒有前綴 System.out.println(people.isRunnable()); 復制代碼反過來,Kotlin操作Java的類實體,也是一樣的。
Java代碼
public class Animal {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;} } 復制代碼Kotlin調用代碼
fun main(args: Array<String>){val animal = Animal()animal.name = "兔子"println(animal.name)} 復制代碼寫在最后
這一部分我們簡單了解了Kotlin面向對象的類和屬性相關知識,這是我們寫出結構清楚的代碼的基礎。
總結
以上是生活随笔為你收集整理的Kotlin系列之类和属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初探JS的函数
- 下一篇: PHP执行批量mysql语句