Kotlin 初探:单例类初始化代码块

kotlin创建单例类很简单 如下

object Dl {
}

单例不能实现构造方法

修改如下

object Dl {

    private var x = 1

    init {
        println("单例  初始化代码块执行 $x 次  x+1 = ${(x+1)}")
    }
}

创建非单例类

class Fdl {

    private val x = 1

    init {
        println("非单例    初始化代码块执行 $x 次  x+1 = ${(x+1)}")
    }
}

创建对象

fun main(args: Array<String>) {
    println(DTUtils.getNowDT())

    val a = Fdl()
    val b = Fdl()

    val c = Dl
    val d = Dl
}

输出如下

2020/01/15 17:31:29
非单例    初始化代码块执行 1 次  x+1 = 2
非单例    初始化代码块执行 1 次  x+1 = 2
单例  初始化代码块执行 1 次  x+1 = 2

可见单例类初始化代码块只执行一次,故如果有需要在构造方法中初始化的操作可放到初始化代码块里

发布了13 篇原创文章 · 获赞 2 · 访问量 1098

猜你喜欢

转载自blog.csdn.net/AneTist/article/details/103993475