Kotlin学习(六)—— 基础巩固,类与继承,Lambda,表达式,计算器

一.类与继承

我们沿用Java的经典案例,人,男人,女人,首先,我们如果要创建一个类,他为男人,他具有姓名,年龄,身高的属性,我们要创建女人,他也有这些属性,但是他们都是人,我们可以抽取出这三个字属性,来看下代码:

        640?wx_fmt=png      

通过这段代码就可以实现我们的抽取例子了。

二.可空参数

在Java中,我们会经常和一个叫做空指针的家伙打交道,但是在kt中,他就能有效的避免空指针,他能做到这点,就是他的可空参数了,我们来看下示例:

       640?wx_fmt=png       

 这段代码很多人会写,通过一个方法获取到一个String对象然后去使用,这里如果String对象为空,那么就出现空指针了,我们避免的方法如下:

        640?wx_fmt=png       

 可以看到我们需要先拿到对象去判断,这样才能操作,那么来到KT中时如何处理的呢?

       640?wx_fmt=png      

 首先我们看到我们定义的方法如果返回一个null,他会直接报错,那么我们加一个可空符号

        640?wx_fmt=png       

 你会发现即使我家了?符号依旧无法直接对他使用,这是因为这个对象有可能为空,所以我们不能这样做,那真正做起来要怎样呢?

        640?wx_fmt=png       

 也很简单,加个问号调用即可,这样哪怕对象返回了空,那么我们也会使用null关键字代替,当然,我们还以直接return

        640?wx_fmt=png       

 如果我们对返回结果十分的自信,认为他怎么都不返回null,那么我们可以加两个感叹号来告知编译器放心编译

       640?wx_fmt=png      

三.Lambda 表达式

Lambda大家都知道使用起来简洁,不过曾经也有人提示说Lambda太简洁了,读起来麻烦。这个就看个人简介了,至少AS默认Lambda来缩写代码我觉得就很不错,Lambda其实你可以理解为匿名函数,为什么呢?我们先来看一段代码

        640?wx_fmt=png       

 这里为了些一个加法的函数,我们分别用了四种写法, 对Kt的函数表达表现的淋漓尽致了

 

传统写法:

传递两个参数,return一个int

 

传统函数缩写

就上一个去掉大括号和返回值以及return 直接相等

 

匿名函数

不写方法名,直接定义一个变量赋值一个函数块再等于结果

 

Lambda

和匿名函数类似,不过fun括号换成大括号,等号换成箭头号

 

我们再来看一个遍历的例子

       640?wx_fmt=png      

 这段代码中,我定义了一个数组,然后去遍历他首先是传统的for in遍历,当然,数组有扩展函数forEach,我们再过Lambda表达式去显示,不过由于只有一句输出,所有it -> 是可以省略的,最后如果我们仅仅是一句输出,则可以通过两个冒号调用。

四.lateinit var

我们在类中定义一个变量,但是IDE会报错,我们来看下

       640?wx_fmt=png      

 看了下报错的错误说是需要我们初始化,可是我们并不需要初始化,那么这个时候就需要使用lateinit了,之后再初始化的意思

       640?wx_fmt=png        

lateinit只能结合var,不能结合val,val的话需要使用by lazy

五.中缀表达式

中缀表达式的关键字是infix,是做什么作用的呢?

 

实际上就是省略方法的常规调用点和括号,举个例子吧:

       640?wx_fmt=png      

 在这段代码中可以看到,我们的Boy类定义了一个love的方法,我们要做的就是love这个女孩,我们可以通过中缀表达式省略这些点和括号的操作。

六.命令行计算器

我们来一个命令行的小例子,先来直接看代码

       640?wx_fmt=png      

在代码中就可以看到,我需求也写得很清楚了,我们首先请用户输入第一个运算数,然后让其选择运算符,如果超过了则让用户重新选择运算符,紧接着我们让其选择第二个运算数,最终计算结果,我们来看下运行结果

       640?wx_fmt=png      

 

Github地址:

https://github.com/LiuGuiLinAndroid/Kotlin

如果有兴趣的话,可以加入我的Kotlin学习小组

       640?wx_fmt=png      

 

我的公众号,期待你的关注

       640?wx_fmt=png        

点击阅读原文有惊喜哦~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值