kotlin
文章平均质量分 68
主要是记录一些在学习中自己的一些笔记方便日后查用,同时也可起到总结的作用,加深对kotlin的使用和理解
guojingbu
主要从事移动端Android应用开发,对后台以及前端有一定的了解。写博客主要是为了总结一些知识点便于自己以后回顾。
展开
-
kotlin - object关键字的使用
kotlin - object关键字的使用kotlin中的object关键字主要有如下三种用途:对象表达式对象声明伴生对象对象表达式对象表达式是完全取代java的匿名内部类的,并且它可以指定多个父类型,和java的匿名内部类还是有区别的,java的匿名内部类只能实现一个父类型。对象表达式的语法如下:object:[0-N接口或类]{//后面接口和类不是必须的可以不写 //对象表达式的类体部分}使用示例代码如下:interface OnClickListener {原创 2021-11-08 17:26:51 · 2890 阅读 · 0 评论 -
kotlin - this关键字的指向
this关键字的指向kotlin中的this比java的this功能更加的强大,它支持带标签的写法,通过这种带标签this的写法可以进行非常细致的区分。kotlin关于this的处理规则如下:类的方法或属性中,this代表着调用该属性或方法的对象。在类的构造器中,this代表着构造器即将返回的对象。在扩展函数或者带接收者的函数字面值中,this表示(.)左边的接收者。如果this没有限定符,那么它优先代表包含该this最内层的接收者,并且会自动向外搜索。如果要让this明确引用特定的接收者,可原创 2021-11-08 16:49:38 · 1637 阅读 · 0 评论 -
kotlin - 类委托和属性委托
kotlin - 类委托和属性委托类委托类委托是代理模式的应用。类委托的本质就是把这个类需要实现的部分委托给其他对象,相当于是借用其他对象的方法作为自己的实现。示例代码如下:interface Outputable { fun output(msg: String) var type: String}class DefaultOutput : Outputable { override fun output(msg: String) { println(原创 2021-11-07 22:38:17 · 1361 阅读 · 0 评论 -
kotlin - 扩展方法和扩展属性
kotlin - 扩展方法和扩展属性我们都知道java要扩展一个已有类的方法和属性必须采用继承、组合或直接修改现有类来进行功能和属性的扩展。而kotlin是完全支持扩展方法和扩展属性的,这样我们就可以像正常调用对象方法一样使用扩展方法和属性了。扩展方法扩展方法的定义语法如下:fun [扩展类].(参数列表){ //方法执行体}示例代码如下:class Row{ fun test(){ println("test") }}//给Row扩展了一个inf原创 2021-11-07 22:02:49 · 3342 阅读 · 0 评论 -
kotlin - 接口和抽象类
kotlin - 接口和抽象类接口kotlin中的接口java中的接口也有一些区别,kotlin中定义接口的语法如下:[修饰符] interface 接口名:父类接口1,父类接口2...{ 0个或者多个属性定义 0个或者多个方法定义 0个或者多个嵌套类、嵌套接口、嵌套枚举定义 }kotlin中接口的特点与java8相似的是,kotlin的接口既可包含抽象方法,又可以包含非抽象方法接口中的属性没有幕后字段(field),不能保存状态,在接口中定义的属性要么是抽象原创 2021-11-07 20:30:14 · 520 阅读 · 0 评论 -
kotlin - 密封类
kotlin - 密封类kotlin中sealed关键字修饰的类就是密封类。密封类其实是一种特殊的抽象类,专门用于派生子类的。密封类的特点密封类的子类是固定的密封类的直接子类必须和密封类在同一个文件中密封类间接的子类可以在不同文件中密封类所有的构造方法都是private的如下程序定义了一个密封类和两个子类:sealed class Vegetable{ abstract fun taste() fun test(){ println("-----test-------")原创 2021-11-07 17:34:23 · 1089 阅读 · 0 评论 -
kotlin - 数据类data
kotlin - 数据类data在kotlin中数据类通过data关键字来修饰。数据类需满足的条件主构造器必须至少有一个参数主构造器中的参数需要用var/val声明为属性数据类不能用abstract、open、sealed修饰,也不能定义成内部类数据类可以实现接口也可以继承其他类系统自动为数据类生成哪些内容生成equals/hashCode的方法。自动重写toString方法返回形如:”User(name=guojingbu,age=18)“的字符串为每个属性生成operator修原创 2021-11-07 17:19:34 · 2687 阅读 · 0 评论 -
kotlin - 内联函数
kotlin - 内联函数首先我们了解一下什么是高阶函数:高阶函数就是为函数传入函数或者lambda表达式的函数。由于在我们执行传进来的函数或lambda表达式时都会为它们创建一个对象,在函数压找出栈的过程也是比较消耗性能的。所以为了避免这种函数的调用过程,编译器就会复制被调用的函数到原来的执行代码中。为了让告知编译器帮我们复制、粘贴哪些代码可以通过内联函数来实现。内联函数的使用只要用inline关键字修饰函数,那么这个函数就变成了内联函数。代码如下:inline fun calculate(a:原创 2021-11-07 17:00:44 · 978 阅读 · 0 评论 -
kotlin - 类与对象
kotlin - 类与对象类的属性类的属性的作用其实就是用于保存该类对象的状态数据的。kotlin中如果不写任何修饰符那么这个属性的访问权限默认为public的。类的属性不需要我们编写setter和getter方法,需要自定义的情况除外。class Person { var name: String = "" var age: Int = 0 lateinit var address:String}kotlin规定类的属性必须要有初始化器,简单的说就是要有初始化值,如果你原创 2021-11-07 00:27:08 · 221 阅读 · 0 评论 -
kotlin - 幕后字段和幕后属性
幕后字段和幕后属性幕后字段在kotlin中定义普通属性时,kotlin会为该属性生成一个field(字段)、getter和setter方法(只读属性没有setter方法)。kotlin为该属性生成的field(字段)被称为幕后字段。注意:如果kotlin类的属性有幕后字段,那么就一定要给这个属性显示的指定初始值,要么在定义的时候指定,要么在构造器中指定初始值。如果没有field(字段)就不需要初始化幕后字段生成的条件该属性使用了kotlin自动生成的getter、setter方法或者之一。简单的原创 2021-11-06 23:05:39 · 834 阅读 · 0 评论 -
kotlin - lambda表达式
kotlin中的lambda表达式使用lambda表达式代替局部函数lambda表达式可以简化代码。比如现在我们要定义一个函数,根据不同的type来确定返回求平方、求立方、求阶乘的函数的应用。如下代码://定义函数,该函数的返回值类型为 Intfun qetMathFunc(type: String): (Int) -> Int { when (type) { //调用局部函数 " square" -> return { n: Int ->原创 2021-11-06 22:29:42 · 201 阅读 · 0 评论 -
kotlin - 函数和闭包
函数和闭包方法的定义定义语法:fun [方法名] ( [参数名] : [参数类型] ) : [返回类型]{ ... return [返回值] }有返回值的函数:fun multiply(x: Int, y:Int): Int { return x * y}如果函数体中只有一条返回语句我们也可以简写为:fun multiply(x: Int, y:Int): Int = x * y也可以写成lamda表达式的形式:var multiply = { x: Int, y:原创 2021-11-06 21:39:48 · 1286 阅读 · 0 评论 -
kotlin-基础篇(二)-函数的定义与使用
函数的定义与使用函数的定义定义语法有返回值无返回值成员方法静态方法顶级方法命名参数可选参数可变参数函数的定义定义语法[可见性修饰符] fun [方法名] ( [参数名] : [参数类型] ) : [返回类型]{ ... return [返回值]}kotlin中默认未指定可见性修饰符的函数默认为public而java中默认是protected有返回值fun double(x: Int): Int { return 2 * x}当函数返回单个表达式时,可以省略花括原创 2020-09-20 22:54:48 · 246 阅读 · 0 评论 -
kotlin-基础篇(一)-变量声明
文章目录只读变量可变变量成员变量静态变量顶级变量变量的getter和setter方法getter和setter方法的可见性新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入只读变量只读变量可以理解为java中的常量用fi原创 2020-09-19 18:23:41 · 1907 阅读 · 0 评论