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

    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()
    }
  • 相关阅读:
    Python mutilprocessing Processing 父子进程共享文件对象?
    BZOJ4836: [Lydsy1704月赛]二元运算
    博弈论刷题记录
    manacher(无讲解)
    UOJ_407_【IOI2018】狼人
    BZOJ_3935_Rbtree
    dsu on tree(无讲解)
    BZOJ_3744_Gty的妹子序列
    后缀数组(无讲解)
    虚树(无讲解)
  • 原文地址:https://www.cnblogs.com/zhuhaichan/p/7815039.html
Copyright © 2020-2023  润新知