Kotlin高级进阶与原理剖析视频教程 – 带源码课件!

Kotlin高级进阶与原理剖析视频教程 - 带源码课件!

 

1.Kotlin 是 Android 开发的官方支持语言,由 Google 在 IO 大会上正式宣布。2.Kotlin 相比 Java 更加简洁,适合构建 Android 应用。3.Kotlin 运行在 JVM 上,可以与 Java 进行 100%互操作。

4.Kotlin 适合 Android 开发,也可以用于后端开发,如 Spring Boot 等。

 

一、基础
1. 变量
1.1 val:value给了初始值不能改变(通常情况下,先用这个)(像vue中的const)(java需要在变量前声明 final )

1.2 var:variable值可以改变

val   var
tips: kotlin 有类型推导机制,会自动推断类型 (变量延迟赋值就需要显示声明)

1.3 类型(kotlin是对象数据类型,java是基本数据类型)
Int: 整型
Long: 长整型
Short: 短整型
Float: 单精度浮点型
Double: 双精度浮点型
Boolean: 布尔型
Char: 字符型
Byte: 字节型 (例如:0101)

2. 函数 function(一个行为,里面放了代码块) Method
// fun:定义 customFun:函数名 ():接受参数 (num):接受参数名 (:Int):接受参数类型 :Int:函数返回类型

fun customFun(num1:Int,num2:Int):Int{
val result=num1+num2
println("num1+num2=$result")
return result
}

function
3. 逻辑控制
3.1 顺序语句

3.2 条件语句

3.2.1 选择

3.2.1.1 if 语句

if else
3.2.1.2 when 语句

val score =60
val score1 =when(score){
in 0..59 -> {
"未及格"
}
in 60..100-> {
"及格了"
}
else-> {
"这是啥"
}
}

when
3.3.循环语句

3.3.1 双端闭区间 [ ]

for (i in 1..10) { print(i) }

3.3.2  单端闭区间 until [ )

for (i in 1 until 10) { print(i) }

3.3.3 跳跃 step

for (i in 1 ..10 step 3) { print(i) }

3.3.4 降序 downTo [10,1]

for (i in 10 downTo 1) { print(i) }

4. 面向对象
4.1 类与对象

4.1.1 类:包括属性和函数


4.2 继承

4.2.1 被继承的类需要在开头添加 open ,然后子类构造函数去调用父类构造函数,继承多个用逗号隔开就行

4.3 构造函数

类实例化的工具,出厂就有一些设置 ,有两种,主构造函数和次构造函数(几乎很少用,被替代性很高 )

4.3.1 主构造函数(没有函数体)

如果想在主构造函数里写逻辑,可以使用 init 对象

4.3.2 次构造函

4.4 接口和多态

4.4.1 接口:我们在接口中定义一系列抽象的方法,然后在具体的子类中去实现

4.4.2 多态:面向接口编程(接收接口的所有)

4.5 修饰符

public: 所有类可见
pravate: 当前类可见
protected: 当前类、子类可见
default: java的kotlin没有
internal: 同意模块中的类可见(java没有这个)

4.6 数据类

关键字:data (kolin 中的数据类 equal hashcode toString 全整好了,短短一行)

data class Dog(val name:String,val color: Color)

4.7 单例类

关键字:object (永远只有一个实例对象)

object Account{

fun accountInfo(){

println("这是一个实例类的方法")
}
}

5. Lambda
(目前感觉像是一个对象,备注给自己看的哈)

5.1 集合

集合的函数式 API 是入门 Lambda 编程的绝佳示例。

5.1.1 list/set 类

5.1.2 map类 键值对

5.2 集合的函数式 API

5.2.1 定义:一小段可以作为参数传递的代码

5.2.2 语法结构:{ 参数名:参数类型,参数名:参数类型 -> 函数体}

5.2.3 参数:外面传递进来

6. 空指针检查
6.1 什么是 NPE ?

NullPointerException 是Bug,系统崩溃率最高

原因:因为空指针是一种不受编程语言检查的运行时异常,只能由程序员主动通过逻辑判断来避免,但即使是最出色的程序员,也不可能将所有潜在的控制正异常全部考虑到。

6.2 kotlin默认所有参数和变量都不可为空,将空指针异常的检查 提前到了编译期

6.3 判空辅助工具

6.3.1 ?. -> 当对象不为空时正常调用相应的方法,当对象为空时则什么都不做

study?.readBooks()

6.3.2 ?: -> 如果左边表达式不为空就返回左边表达式的结果,否则就返回右边表达式的结果

val c =a?:b

6.3.3 !! -> 函数外做了非空处理,函数内部需要用它来强制执行

7. let 函数
(kotlin标准函数)既可以配合辅助判空问号,又可以解决全局变量问题,是可以处理全局变量的判空问题的,而if判断语句则无法做到这一点。

8. 字符串内嵌表达式/函数的参数默认值
8.1 字符串内嵌表达式

println("see ${a+b} see$b")

8.2 函数的参数默认值

用函数穿惨随意 -> 代替次构造函数

val JJJ = Boy(height = 100)

data class Boy(val name:String ="" ,val age:Int =0 ,val height:Int)

二、进阶
1. 标准函数
1.1 with:对同一个对象有很多操作时使用。

whit 函数接收两个参数:第一个参数可以时一个任意类型的对象,第二个参数时一个Lambda表达式。with 函数会在Lambda中提供一个参数对象的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。

val resultWith =with(StringBuilder()){
// obj上下文
append("startWith:\n")
for (s in list) {
append(s).append("\n")
}
append("over!")
toString()     //whit 函数的返回值
}

1.2 run:对同一个对象有很多操作时使用。

在某个对象的基础上调用;run函数值接收一个Lambda参数,并且会在Lambda表达式中提供调用的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。

val resultRun = StringBuilder("startRun:\n").run{
// obj上下文
for (s in list) {
append(s).append("\n")
}
append("over!")
toString()     //run 函数的返回值
}

1.3 apply:对同一个对象有很多操作时使用。

在某个对象的基础上调用;applt 函数值接收一个Lambda参数,并且会在Lambda表达式中提供调用的上下文,返回值是调用对象本身。

val resultApply = StringBuilder("startApply:\n").apply{
// obj上下文
for (s in list) {
append(s).append("\n")
}
append("over!")
toString()     //apply 函数的返回值
}

with_run_apply函数
2. 静态函数
2.1 单例类:整个类中的所有方法全部变成类似于静态方法的调用方式。(Kotlin 用单例类代替了静态属性)

2.2 companion object:类中的某一个方法变成类似于静态方法调用方式。(companion object 实际上实在类中创建一个伴生类,companion object 包裹的方法就是定义在这个伴生类里面的实例方法)

2.3 注解 @JvmStatic:只能加载单例类或 companion object 中的方法上,如果你尝试加载一个普通方法上,会直接提示语法错误。

2.4 顶层方法:没有定义在任何类中的方法,直接创建一个Kotlin 的文件,然后在这个文件中直接写的都是顶层方法。这个在Kotlin中随便在哪,都可以直接调用顶层方法。

tip: 注解和顶层方法是真正的静态方法。

作者:A前A程
链接:https://www.jianshu.com/p/8826f46f0819
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

WraxfAjH1BVpYwN.webp
学习地址:https://t.zsxq.com/S50dD

该文章内容需要登录浏览。请点击 [ 此处登录 ] 后查看。

 

 

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

Excelbook.cn Excel技巧 SQL技巧 Python 学习!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需129元,即可下载本站文章涉及的文件和软件。

文章版权声明 1、本网站名称:Excelbook
2、本站永久网址:http://www.excelbook.cn
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长王小琥进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

THE END
分享
二维码
< <上一篇
下一篇>>