美文网首页
对象表达式&对象声明

对象表达式&对象声明

作者: 为什么要简称 | 来源:发表于2018-12-21 11:04 被阅读7次

对象表达式:Object expression

对象表达式是一种结构,用来创建一个object的实例
举个栗子:

val coords = object {
    var x = 10
    var y = 10
}

和Java中的匿名函数是一个死样子:

window.addMouseListener(object : MouseAdapter() {
    override fun mouseClicked(e: MouseEvent) { …… }

    override fun mouseEntered(e: MouseEvent) { …… }
})

对象声明:Object declaration

基本是个单例声明啊,比如

object HttpService {
val api = retrofit.create(Api::class.java)
fun post(url: String) = api.post(url)
}

这里的HttpService是个class好不啦,而且只会有一个instance,所以可以直接调用其中定义的函数:

HttpService.post("wwww.myurl.com/event")

val service: HttpService = HttpService
service.post("wwww.myurl.com/event")

的效果是一毛一样的。

伴生对象:Companion object

伴生对象其实就是一个对象声明
只是他存在的位置在class里面鹅已。

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

使用的时候把这货当做Java中的静态字段什么的用就可以了。但是切记它其实是一个类的实例。

相关文章

  • 对象表达式&对象声明

    对象表达式:Object expression 对象表达式是一种结构,用来创建一个object的实例举个栗子: 和...

  • 19.Kotlin枚举与委托深入详解

    枚举 示例代码 对象声明 示例代码 关于对象表达式与对象声明之间的区别 1.对象表达式是立刻初始化或者执行的2.对...

  • Kotlin

    用object实现单例模式 或者 Kotlin中的继承例子: 对象表达式,对象声明和伴随对象的区别对象表达式在使用...

  • JavaScript深入理解 —— 原型、原型链和继承

    普通对象和函数对象 函数对象:使用函数声明、函数表达式、Function构造函数创建的对象 函数实际上是对象,每个...

  • js函数总结

    一声明:函数声明,存在声明提升函数表达式 二内部对象:每个函数都有this,argments两个对象。apply ...

  • Kotlin原理-object关键字

    object关键字有下面的三种用法: 对象声明 伴生对象 对象表达式 我们逐一来看看它们的实现原理 对象声明 ob...

  • 对象声明与对象表达式

    回到目录项目源码 kotlin-class 项目 Kotlin 提供了语言层面的对单例模式的支持, 只需要用 ob...

  • 三种方式创建函数及构造函数与普通函数之间的区别

    创建函数的三种方式:函数声明,函数表达式,函数对象 函数声明 函数表达式 函数对象形式 构造函数和普通函数的区别 ...

  • 正则和Math数学对象

    > 正则表达式声明方式: 1. 对象声明法:(RegExp是正则对象) RegExp(str1,str2); st...

  • Kotlin面向对象 (8)✔️强大的object关键字

    对象表达式对象声明 (单例,隶属于——饿汉模式)伴生对象 object 关键字主要在声明一个类的同时创建这个类的对...

网友评论

      本文标题:对象表达式&对象声明

      本文链接:https://www.haomeiwen.com/subject/eatmkqtx.html