Kotlin-对象表达式,对象声明及伴随对象

本文介绍了Kotlin中的对象表达式、对象声明和伴随对象的概念及使用。对象表达式作为匿名类实例,简化了代码。对象声明则不需要赋值给变量,直接通过名称引用。伴随对象提供了类似Java静态方法的功能,调用时不需创建实例,其初始化与类加载同步。
摘要由CSDN通过智能技术生成

概述

在Java中,不管是为了实现接口,或者是抽象类,我们总是习惯使用匿名内部类。最熟悉的例子,莫过于对单击事件的监听,也就是这样写:

btn.setOnClickListener(new OnClickListener{
    // 处理单击事件逻辑
    *** 
});

尽管该匿名类只能被使用一次,这样,我们没有必要再去实现OnClickListener接口并创建一个类,从而简化了代码。可是,在Kotlin中,并没有匿名类这一概念。巧妇无米之炊啊,碰到监听事件或者回调,是不是得老老实实的写一个实现类呢???尽管Kotlin没有匿名内部类,恰巧其用object一个简单的关键字,解决了这一个问题。下面我们来看看神奇的object有什么魔法效果呢?

对象表达式

在Kotlin中,oject的神奇之对象表达式,什么是对象表达式呢?我们把它认为是一个匿名类的实例,该匿名类可以继承自某个类或者多个接口。不过,我们需要通过object关键字将其声明,表示这是一个对象。对于文章开始的单击事件监听我们可以这么写:

btn.setOnClickListener(object : OnClickListener{
    // 处理单击事件逻辑
    *** 
});


  1. 如果被继承的基类中为有参构造器且没有无参构造器时,那么必须向构造器传递适当的参数,否则编译器会报错。
  2. 对象表达式内的代码可以访问创建这个对象的代码范围内的变量࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值