Kotlin构造函数

目录

构造函数类型

主构造函数

成员变量设置

私有化操作

次级构造函数


构造函数类型

  • 主构造函数(主构造器)——只能有一个
  • 次构造函数(次构造器)——可以是多个

主构造函数

构造器 constructor关键字前 无注解或修饰符作用,可直接省略

class Singleton private constructor (age:Int){}
class Singleton (age:Int){}

成员变量设置

       //在构造器直接初始化(用var/val修饰变量)

class Singleton private constructor (var age:Int = 20){

       // 在构造器声明,在类内部初始化

class Singleton private constructor (age:Int = 20){
    private val age:Int = age

       //在构造器声明,在init初始化程序块 初始化

class Singleton private constructor (age:Int = 20){
    private val age:Int 
    init {
        this.age = age
    }

私有化操作

使外部无法通过主构造创建对象

class Singleton private constructor (var age:Int = 20){}

次级构造函数

目的:为类的构造提供多种结构,更灵活

语法规则:

  • constuctor关键字不能省略
  • 次级构造函数会直接或间接调用主构造函数
class Singleton private constructor ( age:Int ){


    constructor(name:String,age:Int) : this(age) {
    }
    constructor(sex:Char,name: String,age: Int) : this(name,age) {
    }
  • 次构造函数调用()
fun main(){
    val sg1:Singleton = Singleton("zhoujun",3)
    val sg2:Singleton = Singleton('m',"zhoujun",3)
}
  • 次级构造函数调用父类次级构造
open class Person {
 constructor(name:String,age:Int){ } 
 constructor(name: String,age: Int,sex:String):this(name,age){ } 
 } 
 
 class Man: Person{
  constructor(name:String,age: Int):super(name,age){ } 
  constructor(name:String,age: Int,sex: String):super(name,age, sex){ }
 }



class BAT private constructor(){ companion object{ //单例对象创建 } }

相关推荐

  1. Kotlin构造函数

    2024-07-10 10:22:06       31 阅读
  2. Kotlin 作用域函数

    2024-07-10 10:22:06       69 阅读
  3. Kotlin函数式接口

    2024-07-10 10:22:06       58 阅读
  4. Kotlin 内联函数

    2024-07-10 10:22:06       58 阅读
  5. Kotlin函数和对象

    2024-07-10 10:22:06       55 阅读
  6. Kotlin 中的构造方法

    2024-07-10 10:22:06       45 阅读
  7. 【Flutter】dart构造函数、工厂构造函数

    2024-07-10 10:22:06       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:22:06       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:22:06       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:22:06       90 阅读
  4. Python语言-面向对象

    2024-07-10 10:22:06       98 阅读

热门阅读

  1. 生日判断星座【GO】

    2024-07-10 10:22:06       26 阅读
  2. SQL Server设置端口:跨平台指南

    2024-07-10 10:22:06       26 阅读
  3. 指定版本ceph-common安装

    2024-07-10 10:22:06       29 阅读
  4. 中科海讯 C++初级研发工程师笔试题目

    2024-07-10 10:22:06       36 阅读
  5. vue3的常用 Composition API有哪些?

    2024-07-10 10:22:06       26 阅读
  6. Linux系统基础命令行指令——Ubuntu

    2024-07-10 10:22:06       35 阅读
  7. 【Android高级UI】计算不规则图形面积

    2024-07-10 10:22:06       33 阅读
  8. Python库 - PyMC3

    2024-07-10 10:22:06       27 阅读
  9. C语言中关键字

    2024-07-10 10:22:06       36 阅读
  10. ios CCPlistFileWritter.m

    2024-07-10 10:22:06       30 阅读
  11. C#实现Winform程序右下角弹窗消息提示

    2024-07-10 10:22:06       28 阅读