Kotlin中object的使用
一、object
只有一个实例的类
不能自定义构造方法
可以实现接口、继承父类
本质上就是单例模式最基本的实现
二、看一下例子
先看看kotlin中的单例
package net.println.kotlin.chapter4.objects /** * @author:wangdong * @description:kotlin中object的使用 */ /**定义一个司机类*/ class Driver /**定一个一个监听的接口*/ interface OnExternalDriverMountListener{ fun onMount(driver: Driver) fun onUnmount(driver: Driver) } /**定义一个播放器的类*/ abstract class Player /**使用object定义一个类,继承播放器父类,实现监听接口*/ object MusicPlayer: Player(), OnExternalDriverMountListener{ override fun onMount(driver: Driver) { } override fun onUnmount(driver: Driver) { } val state : Int = 0 fun play(url : String){ } fun stop(){ } }
看一下java中的单例的实现
package net.println.kotlin.chapter4.objects; /** * @author:wangdong * @description:Java中一个单例的实现 */ public class MusicPlayerJava { public static MusicPlayerJava INSTANCE = new MusicPlayerJava(); private MusicPlayerJava(){} }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
kotlin 类及其成员的可见性
一、首先来看一个Kotlin和Java的比较 Kotlin Java 比较 private private 只有类内部的类和方法可以访问 protected protected 类的子类可见 —— default 相同的包内可以访问 intelnal – 相同的模块内可以访问 public public 随处可见 二、看一个小小的例子 package net.println.kotlin.chapter4 /** * @author:wangdong * @description: */ class House class Flower /** * 当类里面的成员加了private,对外是不可见的 */ class Countryard{ private val house = House() private val flower = Flower() } /**紫禁城。现在大家都能看*/ class ForbiddenCity{ val house = arrayOf(House(), House()) val flower = arrayOf(Flower(),Flower()) ...
- 下一篇
思想:java中,父类的方法中传入的形参的数据类型是泛型,子类的方法的形参想只要一种确定的数据类型,子类该如何做呢?
解决问题的思想: /* * 思想: * java中,父类的方法传入的形参的数据类型是泛型,子类的方法的形参想只要一种确定的数据类型,子类该如何做呢? * 答:那么子类可以重新写一个方法,形参传入的是一种想要的数据类型,而子类方法里面调用的还是父类的方法。 * * 示例代码如下: * * class Hashtalbe<K, V> { * public V put(K key, V value) { * ... * } *} * * class Properties extends Hashtable { * public V setProperty(String key, String value) { * return put(key, value); * } * } */ 我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6