白话kotlin: 简单的理解 关键词object

前言

在编写代码的过程中,我们常用面向对象的思维来组织与处理问题。

于是就有了类与对象的概念。
根据类的描述,我们可以实例化一个对象。

匿名类的实例化

直接说一个我们常见的回调:给一个按钮加上点击的监听事件
步骤:

  1. 创建类,这个类描述了在回调的时候,你需要做哪些事情。
  2. 根据刚才创建的类来创建一个对象。

在Java中,我们使用匿名内部类可以这么写:

《白话kotlin: 简单的理解 关键词object》 匿名类

在Kotlin中,我们可以这么写:

《白话kotlin: 简单的理解 关键词object》 匿名类

从以上来看,kotlin中的object关键词java中的new差不多。

除此之外,kotlin中的object还可以这么写:

  1. 一个对象,有多个父亲的写法

    《白话kotlin: 简单的理解 关键词object》 熊掌鱼

  1. 一个对象,没有父亲的写法

    《白话kotlin: 简单的理解 关键词object》 简单的对象

说了那么多,总结一下。
针对匿名类而言,kotlin中的object关键词java中的new关键词是差不多的。

单例

所谓单例,就是内存中,只有这个类的唯一的一个对象。
单例是个很有用的模板,Java要写一堆代码,Kotlin则非常简单,如下:

《白话kotlin: 简单的理解 关键词object》 object声明单例

我们可以这样使用:

RxBus.post(1)

由单例而引发的血案

由于kotlin中没有static关键词,也就是没法定义类的静态字段,静态方法
但是我们可以这么想:类的静态字段,静态方法属于类的,在内存中只有一份,完全可以用单例来代替

一个类的常量,我们可以这么玩

我们也可以在类的内部这么定义:

《白话kotlin: 简单的理解 关键词object》 定义

这么访问

《白话kotlin: 简单的理解 关键词object》 访问

访问的话,我们多写了一个类的名字:School.Contants.name

我们想更加简单的这么写:School.name怎么办?

《白话kotlin: 简单的理解 关键词object》 companion object

再简单一点:

《白话kotlin: 简单的理解 关键词object》 companion object

白话kotlin系列

  1. 白话kotlin:向空指针异常说再见
  2. 白话kotlin:lambda表达式和高阶函数是什么玩意?
  3. 白话kotlin:内联函数助你提升运行效率
  4. 白话kotlin:用协程来愉快的处理异步问题
  5. 白话kotlin:有意思的拓展
  6. 白话kotlin:简单的理解 关键词object
    原文作者:linheimx
    原文地址: https://www.jianshu.com/p/34b97595e40c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞