Kotlin 类和对象


Kotlin 和 Java 不同,一个 .java 文件必须以一个类作为顶级元素的,而一个 .kt 文件并不需要以一个类作为顶级元素,一个.kt 中可以存在多个类,多个方法,甚至一个.kt 文件可以全部由方法和属性构成(这就类似于FP编程风格了);

demo.kt

fun foo(param:String):String{
    ... 
}
class User(var name:String,var age:Int){
    ...
}
class address(var city:String,var country:String){
    ...
}

类的创建和调用


类的创建

以下是一个典型的 JavaBean 代码转化为 Kotlin 代码

User.java

public class User {
    private String name;
    private int age;
    private String city;
    public User() {
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

User.kt

class User(){
    var name:String? = null;
    var age:Int? = null;
    var city:String? = null;
}

对于Kotlin的类,其构造器分为主构造器和次构造器,主构造器只有一个,次构造器可以有多个,如下:

class User(name:String){    //主构造器的参数在类声明中声明
    var name:String? = null;
    var age:Int? = null;
    var city:String? = null;
    init{                 //主构造器
        this.name = name;
    }
    constructor(name:String,age:Int):this(name){  //次构造器,调用主构造器,使用this关键字调用其他构造器
        this.age = age;
    }
    constructor(name:String,age:Int,city:String):this(name,age){  //次构造器,调用上面的构造器
        this.city = city;
    }
}