面向对象
类
声明类
Kotlin使用关键字class
声明类:
构造函数
在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。
主构造函数
主构造函数是类头的一部分:它跟在类名(与可选的类型参数)后
如果主构造函数没有任何注解或者可见性修饰符,可以省略这个 constructor 关键字:
如果构造函数有注解或可见性修饰符,这个 constructor 关键字是必需的,并且这些修饰符在它前面:
主构造函数不能包含任何代码,他只有一对括号,以及构造所需的参数声明,如果要在构造对象时进行初始化,可以使用
init
关键字声明初始化块:主构造的参数可以在初始化块中使用。它们也可以在类体内声明的属性初始化器中使用:
主构造函数的参数可以使用
var
、val
类型,但是不能有const val
常量:如果非抽象类没有声明任何(主或次)构造函数,它会有一个生成的不带参数的主构造函数,并且他的访问修饰符是public的
主构造器上的所有参数是可以设置默认值的:
如果主构造器上的所有参数都有默认值,编译器会生成 一个额外的无参构造器,它将使用默认值。这使得 Kotlin 更易于使用像 Jackson 或者 JPA 这样的通过无参构造函数创建类的实例的库。
次构造函数
不在类头,在类内部使用
constructor
关键字声明次构造函数如果类有一个主构造函数,每个次构造函数需要委托给主构造函数, 可以直接委托或者通过别的次构造函数间接委托。委托到同一个类的另一个构造函数用 this 关键字即可:
同样的,一个次构造器,也是可以给默认值的
创建类实例
Kotlin中没有new关键字,通过直接调用构造函数即可创建类实例:
最后更新于
这有帮助吗?