Object-Android关键字,伴生对象,Kotlin静态

2024-09-04 19:04

本文主要是介绍Object-Android关键字,伴生对象,Kotlin静态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、定义一个类并生成它的单例对象

原理

调用方式

2、伴生对象(静态类)

原理

调用方式

3、对象表达式


Object在Android独特的前缀通常有以下三种用法:

1、定义一个类并生成它的单例对象

object Singleton{fun test(){}
}

原理

其实就是Java的单例模式,Kotlin中提供object方便创建单例

public final class Singleton {public static final Singleton INSTANCE;public final void xxx() {}private Singleton() {}static {Singleton var0 = new Singleton();INSTANCE = var0;}
}

调用方式

类已经自动生成单例对象,直接使用类名,即可获取单例对象,调用对象方法

Singlton.test()

2、伴生对象(静态类)

Kotlin语言特有companion object代码块,替代Java中static关键字,内部定义的方法和属性成为该类的静态方法和静态属性

class User(val male: Int){companion object {val MALE = 0fun isMale(male:Int) = male == MALE}
}

原理

public final class User {private final int male;private static final int MALE = 0;public static final User.Companion Companion = new User.Companion((DefaultConstructorMarker)null);public final int getMale() {return this.male;}public User(int male) {this.male = male;}public static final class Companion {public final int getMALE() {return User.MALE;public static final User.Companion Companion = new User.Companion((DefaultConstructorMarker)null);}public final boolean isMale(int male) {return male == ((User.Companion)this).getMALE();}private Companion() {}// $FF: synthetic methodpublic Companion(DefaultConstructorMarker $constructor_marker) {this();}}
}

调用方式

User.MALE
User.isMale(1)

3、对象表达式

类似Java匿名内部类(在定义类的同时实例化类),一次性实现接口

拿点击事件举例,调用setOnClickListener()需传入一个实现View.onClickListener接口的对象

因为该对象是一次性使用,用匿名内部类   

 public void setOnClickListener(@Nullable OnClickListener l) {throw new RuntimeException("Stub!");}

       object:接口{重写接口方法}

button.setOnClickListener(object : View.OnClickListener{override fun onClick(v: View) {}
})

这篇关于Object-Android关键字,伴生对象,Kotlin静态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136769

相关文章

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最