kotlin 与 java 区别

作者: shenshizhong | 来源:发表于2022-12-26 23:18 被阅读0次

    文章目录

    • 前言
    • kotlin 优势
    • kotlin与java 区别
    • 总结

    前言

    想想接触kotlin 也将近三年了,其实从java 切换到kotlin 没什么难的,就是心理上的畏惧罢了,真的去写,在项目中写出来,上手也是很快的。其实这个过程最难的就是会想,用kotlin 写会有什么问题,其实尽管你原来的项目是用java写的,完全不用担心的,是可以混着写的。

    说再多,还不如自己亲自上手去写,且不说用什么高阶函数,一开始上手的时候,用最基础的就行,慢慢就习惯了。

    现在kotlin 可以说是必备的了,因为很多开源库基本基本都是kotlin 写的,另外这个也是google主推的语言。

    kotlin优势

    kotlin有这么些好处:
    1、空引用由类型系统控制,再也不会遇到NullPointerException。
    2、使用高阶函数,就是可以将函数作为参数,或者作为返回值来使用。
    3、给一个类扩展函数,不需要继承,直接通过类名+"." + 方法就可以。比如
    fun MyClass.add(a:Int,b:Int) = a+b 就对MyClass扩展了一个函数。

    kotlin与java 区别

    接下来,列举kotlin 与 java 区别:

    1、java 中的原始类是Object, 而在kotlin 中是Any。
    Any 方法中只有equals(), hashCode(),toString()
    2、kotlin 中的类型判断是is, 类型转换是as
    is 相当于java的instanceof
    3、kotlin 中默认的访问权限是public,就是类如果不写修饰符,默认是public
    4、类默认是final, 如果这个类要被继承,就要加个修饰符open
    5、kotlin 中没有switch 而是使用when, when 不仅支持String类型,还支持表达式,而且还能有返回值。
    6、声明一个类直接就一行代码,比如 class Student(var name:String, var age:Int)
    7、声明一个单例更简单,比如 object SingleInstance
    8、实体类,直接通过data 来进行修饰。
    data class Student(var name: String, var age: Int)
    1、自动为成员生成 setter 和 getter
    2、会自动重写 equals()/ hashCode() 和 toString()
    3、data 类默认是final的,无法被继承。

    9、kotlin接口中的方法可以写默认实现,java不行。
    10、kotlin 的类名之外的函数,叫做包级函数,包括扩展函数,都是静态的。在编译的时候,
    kotlin 就把所有的包级函放在一个类中,java 可以通过Student.getMessage()来调用。
    class Student(var name: String, var age: Int){ }
    fun getMessage(){
    //todo
    }
    11、kotlin 通配符是*,不再是?。?一般放在申明变量是可null的。
    12、kotlin 中没有static,用伴生类代替。
    companion object{
    var num: Int = 3
    fun get(): Int{
    return num
    }
    }
    13、kotlin 中,函数是一种类型,可以把具体的函数当成对象传递,比如lambda表达式就是一个匿名函数
    14、kotlin 有几个常用的标准高阶函数,比如run(), with(),apply(),alse(),let(),这几个在开发中使用,可以让代码看起来更整洁。

    总结

    语言更多的通过项目的实践,然后多写,慢慢就熟悉了。因为本身有java的开发经验,所以要用kotlin 写也不难的,另外开发工具还支持,拷贝java代码粘贴到kotlin文件就转化成kotlin的代码了,应急的时候这么做也是可以的。熟练之后,koltin开发还是很舒服的。

    如果对你有一点点帮助,那是值得高兴的事情。:)
    我的csdn:http://blog.csdn.net/shenshizhong
    我的简书:http://www.jianshu.com/u/345daf0211ad

    相关文章

      网友评论

        本文标题:kotlin 与 java 区别

        本文链接:https://www.haomeiwen.com/subject/uhmpqdtx.html