IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Kotlin笔记 -> 正文阅读

[移动开发]Kotlin笔记

Kotlin

1.类型可变,后置,自动识别

var/val name
//方法用fun关键字
fun functin:Int / var name:String
//name类型自动识别
//kotlin中默认数据是非空类型,令空时特定设定
var name="abcdefg" 

2.data

//kotlin中函数默认是public final类型,不可继承,open解决此问题
open class hello{}
//相当于在类中√私有数据的get()set()方法
data class world{}

3.迭代

//i从1到100
for (i in 1..100)
//i从100降序输出到1 且只输出偶数
for (i in 100 downTo 1 step 2)
//1到100半区间输出
for(i in 1 until 100)
  • step是正的

4.when

fun hello(color:Color)=
	when(color){
		Color.RED->"blue"
		//多个值合成一个分支
		//->前面相当于if中的条件
		Color.WHITE,Color.BLACK,Color.ORANGE->"blue"
		else->"else"
	}

5.字符串模板

//简单些的"$"
val name="world"
println("hello"+"$name")

//复杂些的"${}"
println("hello"+"${max(1,2)}")

6.Unit类型

  • 相当于void
fun f():Unit

7.Noting类型

当返回值没有意义或者发生异常时,常用Nothing来替代

fun f(message:String):Nothing{}

8.判断

8.1 in 和 !in

fun isBetter(c:char)= c in 'a'...'z'&& c !in 'A'...'Z'

8.2 all any count find

val list=listOf(1,2,3,4,5,6,7,8)
val result={i:Int->i%2==0}
println(list.all(result))
/*
集合:
val set=hashSetOf(1,3,5)
val map=hashMapOf(3,5,7,9)
val list=arrayListOf(1,2,3,4,5)
*/

8.3 可空类型

  • as?
    安全转换类型,为空时打印出null
name as String
name as? Int
  • !!
    一定不为空类型
  • ?.
    判空且执行
A?.toUpperCase()

如果前面有过判空,代码将记住,后面默认为不为空类型

  • ?:
A?.B  //当A为null时会返回B  
fun str(s:String?):Int{
   s ?. length ?: 0
}
  • lateinit
    延迟初始化修饰符
private lateinit var hi:String

kotlin要求构造方法中初始化所有属性,否则必须用可空类型

  • == 比较两个值大小 ===比较对象地址

9.函数

9.1 高阶函数

9.2 扩展函数

//格式:被扩展类.扩展方法
/*
  扩展函数特点:
  1.扩展方法不能访问被扩展类的 私有/保护的方法和属性
  2.扩展方法在函数外部,无法访问函数内部
*/
fun String.abc():char=...

9.3 伴生函数

//伴生相当于 static 作用
fun campaion.Sring.

9.4 顶层函数

//函数放入代码文件顶层
package Utils 
fun hi(a:Int,b:Int)=if(a>b) a else b

//调用
import package Utils.hi
fun main(args:Array<String>){
	hi(3,7)
}

9.5 密封类

  • static = sealed + abstract
  • sealed作用防止类多次派生,引起逻辑混乱,如A继承B,B继承C…
  • sealed能被继承但是子类只能执行父类方法不能拓展,且为final,sealed或者unsealed

9.6 修饰符

javaKotlin
protected 同包及不同包子类protected子类
default同包internal模块

9.7 构造函数

  • 主构造只能有一个,次构造可以有多个
  • 主构造没有方法体,用init初始化,不管什么结构体,init先执行
//主构造体
constructor{
	init(){}
}
//次构造体
constructor(name:String,age:Int){}
  • 有主构造体,次构造体要执行主,没有就蒜了

9.8 内部类和嵌套类

类型javaKotlin
内部类class Ainner class A
嵌套类static class Aclass A

9.9 open abstract override

openabstractoverride
不final抽象,默认open
可以重写在抽象类中使用,必须重写重写父类或接口中的成员
abstract class hi{
	//抽象方法默认为open不需要用open显式表示
	//若是非抽象就需要用open
	abstract fun B() //抽象方法
    open  fun A{}  //非抽象方法
    
	/*接口和抽象类格式
	class C : D,E{}
	*/
}
javakotlin
staticcampion
get/setdata
voidUnit
内部类拓展函数
=====比较地址值
voidUnit
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:09:00  更:2022-02-04 11:11:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:27:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码