栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kotlin笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kotlin笔记

目录标题

Kotlin

1.类型可变,后置,自动识别2.data3.迭代4.when5.字符串模板6.Unit类型7.Noting类型8.判断

8.1 in 和 !in8.2 all any count find8.3 可空类型 9.函数

9.1 高阶函数9.2 扩展函数9.3 伴生函数9.4 顶层函数9.5 密封类9.6 修饰符9.7 构造函数9.8 内部类和嵌套类9.9 open abstract override

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))

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 高阶函数

参数或返回类型是函数的函数称为高阶函数

fun operation(name:Int,age:Int,exam:(Int,Int)->Int)-> Int{
	return exam(name,age);
}
9.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){
	hi(3,7)
}
9.5 密封类

static = sealed + abstractsealed作用防止类多次派生,引起逻辑混乱,如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{}  //非抽象方法
    
	
}
javakotlin
staticcampion
get/setdata
voidUnit
内部类拓展函数
=====比较地址值
voidUnit
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号