类声明由类名、类头(指定其类型参数、主构造函数等)和由大括号包围的类体构成。类头和类体都是可选的; 如果一个类没有类体,可以省略花括号。

class Perosn{
}

class Person

构造函数

一个类可以有一个主构造函数和一个或多个次构造函数

主构造函数

主构造函数是类头的一部分:它跟在类名(和可选的类型参数)后。如果主构造函数没有任何注解或者可见性修饰符,可以省略这个 constructor 关键字。如果构造函数有注解或可见性修饰符,这个 constructor 关键字是必需的,并且这些修饰符在它前面。

主构造函数不能包含任何的代码。初始化的代码可以放到以 init 关键字作为前缀的初始化块(initializer blocks)中。注意,主构造的参数可以在初始化块中使用。它们也可以在类体内 声明的属性初始化中使用。

构造函数是 public。可以加关键字 private 成私有的构造函数

class Person constructor(firstName: String) {
}

class Person (firstName: String) {
}

//私有构造函数
class Person private constructor(firstName: String) {
}class Person (firstName: String) {
    //初始化
    init {
        logger.info("Person initialized with value ${firstName}")
    }
    //类体内调用
    val customerKey = firstName.toUpperCase()
}

//有修饰符,constructor不可省略
class Customer public @Inject constructor(name: String) { …… }

次构造函数

class Person {
    constructor(parent: Person) {
        
    }
}

抽象类

abstract class Person {
    abstract fun f()
}

 

posted on 2017-11-10 15:47  婵婵  阅读(152)  评论(0编辑  收藏  举报

导航