kotlin 与 java 区别

67 阅读3分钟

文章目录

  • 前言
  • 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: Int1、自动为成员生成 setter 和 getter

2、会自动重写 equals()/ hashCode() 和 toString()

3data 类默认是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:blog.csdn.net/shenshizhon…

我的简书:www.jianshu.com/u/345daf021…