对象声明(单例)

对象声明 object

object MySingle {
    fun myAdd(num1: Int, num2: Int) {
        println("测试${num1} + ${num2} = ${num1 + num2}")
    }

    val myName: String
        get() = "小王"
}

对象声明的初始化过程是线程安全的.
直接调用

        MySingle.myAdd(1,2)
        Log.d("测试","name:"+MySingle.myName)

可以有超类型

object MySingle: BaseSingle() {
    fun myAdd(num1: Int, num2: Int) {
        println("测试${num1} + ${num2} = ${num1 + num2}")
    }

    val myName: String
        get() = "小王"
}
open class BaseSingle{}

伴生对象
类内部声明可用 companion 关键字标记

class MyClass {
    companion object Factory {
        fun create(): MyClass = MyClass()
    }
}

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

class Person constructor(firstName: String) { ... }

主构造函数不能包含任何代码,初始化放在 init 初始化块中

class InitOrderDemo(name: String) {
    val firstProperty = "First property: $name".also(::println)
    
    init {
        println("First initializer block that prints ${name}")
    }
    
    val secondProperty = "Second property: ${name.length}".also(::println)
    
    init {
        println("Second initializer block that prints ${name.length}")
    }
}

次构造函数
前缀 constructor

class Person {
    constructor(parent: Person) {
        parent.children.add(this)
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,795评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • 《蔡康永的说话之道2》延续着上一本的轻松幽默,插图也很可爱。很喜欢这样的书,感觉读起来没有负担。想了一下,发现并没...
    梅梅_c7d4阅读 258评论 0 0
  • 文/秋婵 遇见初恋是什么感觉?心动?害羞? 2017. 4. 3,清明时节,我带儿子回妈妈家吃完晚...
    爱秋婵阅读 307评论 0 0
  • 姓名:李震 公司:鲁达餐饮管理有限公司 【日精进打卡第125天,始于20180420今天是20180822】。 ...
    全州阅读 331评论 0 0