Kotlin基础教程之dataclass,objectclass,use函数,类扩展,socket

Kotlin提供了一些机制来扩展已有的类,如下:
还记得我们之前写过的Point3D类吗?(将其略作修改,将成员变量改为Double类型)
让我们为其扩展一个length函数
扩展的方法很简单,只要在函数名前面加上类名就行了.
这样Point3D的对象就有了一个名为length的方法.
运行的结果不出所料:
除此之外,在Kotlin中还有一些特殊的类,比如Data Class:
有些类只包含数据,不需要包含方法,就可以声明为data class,当然data class并不是不能包含方法.
data class最大的特色在于copy函数和多变量赋值,可以在一条语句里面把不同的字段赋值给不同的变量.
运行结果如下:
Kotlin一般在类中不允许static成员,前面曾经说过可以使用companion object来创建一个伴生对象从而可以使用static成员.
这里还有一种方法就是使用object关键字声明一种特殊的类,这个类只有一个实例,因此看起来整个类就好像是一个对象一样.如下:
这里把类声明时的class关键字改成了object,这个类里面的成员默认都是static的.
另外我们可以看到在这段代码中出现了一个use函数,这个函数的参数是一个lambda表达式或者说一个匿名函数.
其参数必须实现Closeable接口,其参数在函数结束后会自动关闭,调用其close方法,无论是否发生异常.
其实这个用法来自于Java7中引入的一个语法,在Java7中引入的这个语法名为try-with-resource,其对应的Java代码如下:
server变量在try语句中被声明并初始化,无论是否发生异常,最后server都会被自动关闭.
之所以引入这种语法,是为了解决finally语句的不足.
在Kotlin中的use函数就是实现了Java中try-with-resource语句的功能.
这段Kotlin代码写的是一个多线程Socket服务器的demo,其他部分的代码如下:
客户端代码:
当Socket服务器启动后,再启动SocketClient,运行结果如下:
服务器输出:
客户端输出:
可以看到Socket服务已经正常启动了.
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Kotlin
# dataclass
# objectclass
# use函数
# 类扩展
# socket
# Kotlin object的几种用法示例详解
# Kotlin中Object关键字的使用示例介绍
# Mockito mock Kotlin Object类方法报错解决方法
# kotlin中object关键字的三种使用场景
# kotlin object关键字单例模式实现示例详解
# 是一个
# 这段
# 可以看到
# 可以使用
# 自动关闭
# 的是
# 客户端
# 都是
# 让我们
# 不需要
# 将其
# 希望能
# 很简单
# 只有一个
# 为其
# 来自于
# 或者说
# 谢谢大家
# 后会
# 还有一些
相关文章:
如何快速搭建高效香港服务器网站?
建站之星价格显示格式升级,你的预算足够吗?
如何自定义建站之星网站的导航菜单样式?
如何在IIS7上新建站点并设置安全权限?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何高效完成自助建站业务培训?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
代刷网站制作软件,别人代刷火车票靠谱吗?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在西部数码注册域名并快速搭建网站?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
linux top下的 minerd 木马清除方法
建站之星多图banner生成与模板自定义指南
自助网站制作软件,个人如何自助建网站?
创业网站制作流程,创业网站可靠吗?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何选择PHP开源工具快速搭建网站?
建站之星2.7模板快速切换与批量管理功能操作指南
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
图册素材网站设计制作软件,图册的导出方式有几种?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何撰写建站申请书?关键要点有哪些?
建站主机功能解析:服务器选择与快速搭建指南
如何在Golang中指定模块版本_使用go.mod控制版本号
建站上传速度慢?如何优化加速网站加载效率?
香港服务器WordPress建站指南:SEO优化与高效部署策略
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
如何在自有机房高效搭建专业网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
建站之星如何实现五合一智能建站与营销推广?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
h5在线制作网站电脑版下载,h5网页制作软件?
建站之星与建站宝盒如何选择最佳方案?
,购物网站怎么盈利呢?
代购小票制作网站有哪些,购物小票的简要说明?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
如何在万网自助建站平台快速创建网站?
,柠檬视频怎样兑换vip?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何获取PHP WAP自助建站系统源码?
定制建站方案优化指南:企业官网开发与建站费用解析
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
北京企业网站设计制作公司,北京铁路集团官方网站?
如何选择域名并搭建高效网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。