首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学会这些就能写Kotlin项目了吧

1、为什么使用Kotlin开发Android呢?

java被 Oracle收购后,谷歌经常被Oracle告侵权,所以谷歌选择了Kotlin作为Android开发的第一语言,在Android官网上 说Kotlin是免费且开放的,是由一家特别厉害的公司JetBrains开发的静态编程语言,AndroidStudio也是根据他家的IDEA改的,谷歌也贡献了开源代码

Kotlin的优点:

富有表现力且极简洁

Kotlin 的现代语言功能让您可以专注于表达自己的想法,少编写样板代码。

更安全的代码

借助自身类型系统所含的 @Nullable 和 @NonNull,Kotlin 可帮助您避免 NullPointerExceptions。使用 Kotlin 的 Android 应用发生崩溃的可能性降低了 20%。

可互操作

可以和Java代码互通,互相调用

结构化并发

Kotlin 协程可简化异步编程,让您能够轻松高效地执行网络调用和数据库更新等常见任务。

2、基础语法

2.1、变量

类型推导  根据初始化的类型进行类型推导

可变变量定义  var

不可变变量定义val  相当于java的final修饰

Kotlin是一个静态语言 ,编译期就决定的东西

decompiledJava(用插件先把Kotlin转为字节码,再反编译成java文件)后的代码

由以上代码可以看出var转为java之后是有get和set方法的,而val用了final修饰之后并且没有set方法,说明了用var修饰的变量可读可写,用val修饰的变量可读不可写

2.2、函数

不带返回值的方法void==Unit 可以省略

有返回值返回值 和参数的方法

一种更高级的写法

方法 = 推导返回值类型

java里可以有可变参数,Kotlin里也有需要用vararg 关键字来修饰

可变参数(可变长的参数)

lambda表达式函数(这里先举个例子,以后专门写个文章来学习lambda)

2.3、字符串模板

写起来会快一点

三个双引号,原样输出,换行不需要转义字符,

trimIndent()去掉前置空格,具体什么效果大家可以敲一敲 去试试

显示$999.99

2.4 、Kotlin特色之一 null检查机制

一共三种补救措施

第一种就是方法内允许返回空值,在返回值返回的后边加一个?,这样的话就将补救措施交给了返回值的调用者

这种写法testStr.length报的错误和上面一样的,如果把test方法返回值的?去掉,则这个方法是不允许返回null的,testStr.length是不会报错的

第二种补救措施

调用的这个属性的时候,点前边加一个?,表示如果这个属性为null,则后边的代码不执行

第三种补救措施在调用的时候,点前面加两个!!,表示这个属性一定不为null,后面的一定执行

第三种补救措施一定要慎用,在确定这个属性为百分之百不为null的情况下可以这样用,否则会出现空指针异常的情况

2.5、区间

输出结果:

3、比较与数组

==比较值本身相当于,equals也能用,但是有黄色波浪线

===比较对象地址

数组  arrayOf泛型 类型推导

也可以这样写

decompiledJava后的代码

4、条件控制

表达式比大小

区间判断

switch的升级版when

when的类型推导

如果各个分支的返回类型不相同,str则会被推导成Any类型,相当于Java当中的Object

5、循环与标签

在 Kotlin 中任何表达式都可以用标签来标记。标签的格式为标识符+ @ 符号,例如:aaa@、bottom@都是有效的标签, 要为一个表达式加标签,我们只要在其前加标签即可。

标签的应用

break

return

this

for循环

6、类与对象

先来一个空类

6.1、构造方法

上面这种写法,转成java之后class 是用final修饰的,所以不能被继承,但是我想写一个父类怎么办呢,class前面用open修饰,这个类就可以被继承了,就去掉了final关键字

6.2、属性默认值

在Java中所有的属性值是可以有默认值的,默认为null,是没有什么问题的,但是Kotlini中,如果不给属性赋值,就会报错

解决办法

?=允许为空自己去补救

自己赋予初始值皆大欢喜

用懒加载 lateinit修饰

6.3、抽象类和接口

抽象类 和接口 和java的写法相似

6.4、数据Bean

JavaBean的写法,Kotlin中用dataclass代替了JavaBean,还生成了copy函数

转成java的代码

6.5、Kotlin的Object和伴生对象companion object

Kotlin的単例模式Object类

转成Java之后的代码

伴生对象companionobject,为了方便理解咱们先上代码

转Java之后

所谓的伴生对象,就是伴随这出生的对象,直接在类初始化的时候,这个伴生对象Companion 也跟着实例化了,并且将伴生对象的属性变成了此类的静态变量,调用方法的时候,也是类直接调用静态属性Companion,然后再调用show方法

kotlin的内部类

点击这里可以给我留言哦~

给个赞和在看支持一下么么哒!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210926A0694300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券