Kotlin中的可见性修饰符:public,protected,private,internal,如果不加任何修饰符,默认是public
public:默认修饰符,被其修饰的在任何位置都能访问;
private:表示只在这个类(以及它的所有成员)之内可以访问;
protected:在当前类及其子类内访问;
internal:在同一模块内使用;
Kotlin中类的定义:
// 类的定义
class kotlin {
}
类的构造器:
在Kotlin中一个类可以有一个主构造函数和一个或多个次构造函数;
主构造函数是类头的一部分:它跟在类名后。如果主构造函数没有任何注解或可见性修饰符,constructor关键字可省略,否则是必须的;
主构函数不能包含任何代码,初始化代码放在以init关键字作为前缀的初始化块中;
主构函数的参数可以在初始化块中使用,也可以在类体内声明的属性初始化器中使用;
主构造器:
// 主构造器一般在类的后面加上 constructor() 关键字,后面为传入的参数
// 定义主构造器 写法一
class Person constructor(name: String){
init {
println(name)
}
}
// 定义主构造器 写法二
// 构造器的可见性默认为public,如果可见性为public,可以省略可见性描述符,可见性描述符被省略了,constructor也可以省略
class Person (name: String){
init {
println(name)
}
}
// main函数中调用
fun main(arge: Array<String>) {
Person("HaHa")
}
Run:
次构造器:
次构造函数声明前缀有 constructor;
class kotlin {
// 次构造器
constructor(name: String){
println(name)
}
}
如果类定义了主构造器,次构造器必须直接或间接调用主构造器;
class kotlin {
// 定义主构造器
class Person (name: String){
init {
println(name)
}
// 次构造器(通过this直接调用主构造器)
constructor(age: Int): this("HAHA"){
println(age)
}
}
}
fun main(arge: Array<String>) {
kotlin.Person(25)
}
Run: