Kotlin
2023-11-19 22:20:15 10 举报
AI智能生成
Kotlin
作者其他创作
大纲/内容
变量
val
定义一个常量
相当于java的final
var
定义一个变量
为什么要设置val,我们在大多数场景下的使用原则应该是能用常量就用常量,需要
用变量的时候再使用变量,而java的final无法让我们养成这种习惯,那么Kotlin就
设置了val让我们多使用常量
用变量的时候再使用变量,而java的final无法让我们养成这种习惯,那么Kotlin就
设置了val让我们多使用常量
为什么不需要声明类型
Kotlin提供了强大的类型推导机制,会自动推到类型
定义变量的格式
val 变量名: 变量类型
Kotlin抛弃了基本数据类型,所有的数据都是对象
int对应Int
函数
语法糖
对于一行的函数
可以省略换行直接用=
可以不加return
逻辑控制
if语句
if语句有返回值,返回值是每个条件的最后一行的内容
when语句
可以直接加箭头
匹配值 -> {执行逻辑}
也可以直接将判断过程写在when语句里
循环语句
while语句
for循环
没有fori结构
for-in循环
0..10表示从0到10的闭区间
0 until 10表示从0到10左闭右开
0..10 step 2
表示从0 到 10每次 + 2
表示从0 到 10每次 + 2
10 downTo 1表示从10 到 1闭区间
类与对象
构造函数
主构造函数
写在类名后面的括号里,就是他的参数
主构造函数主要是相当于我们之前java类中子类的构造函数都需要在第一行super调用父类
的构造函数,那么他觉得这样很烦,那么主构造函数在设置的时候就直接在声明继承的时候
就写上需要调用哪个父类的构造方法
的构造函数,那么他觉得这样很烦,那么主构造函数在设置的时候就直接在声明继承的时候
就写上需要调用哪个父类的构造方法
如果是父类的有参构造,那么在主构造函数写父类参数名: 参数类型就可以了,不需要指定是val还说var
他会沿用父类的定义
他会沿用父类的定义
主构造函数默认没有方法体,那么要想加逻辑的话使用init代码块
也允许没有主构造函数的情况
继承时加的括号的意思就是我们主构造函数调用的super()父类构造函数,那么如果我们没有主构造函数是
也自然不需要加括号,次构造函数在调用时就使用super()调用父类构造函数
也自然不需要加括号,次构造函数在调用时就使用super()调用父类构造函数
次构造函数
次构造函数必须直接或者间接的调用主构造函数 也就是:后面通过this()调用自己的其他构造函数,然后在这个时候加上默认值
继承
类被继承以后子类使用父类的哪个构造方法直接写上
接口
和java一样,然后可以有默认值和jdk1.8一样
面向接口编程
Study是一个接口,Student类实现了这个接口
数据类
使用data class可以很方便的使用Kotlin封装好的数据类
单例模式
使用object class可以实现单例类
Lambda编程
集合的创建和遍历
创建不可变集合
listOf()
setOf()
mapOf()
其中to不是关键字而是一个infix函数
创建可变集合
mutableListOf()
mutalbeSetOf()
mutableMapOf()
map
map不推荐使用putget方法添加获取元素
推荐使用数组下标的形式获取
lambda
map方法将每一个元素映射成另一个值
filter进行集合内容的过滤
any all进行内容匹配
any表示集合中是否有匹配的
all表示集合中是否全部匹配
0 条评论
下一页