一、常用修饰符的不同
定义一个变量
java的例子:
private static final String str ;
kotlin的例子:
companion object{
private val str:String = null !!
}
(1)在java中访问修饰符包括 default、private、public、protect 。在kotlin可见性修饰符包括 private、public、protected、 internal,其中前3个和java中的使用范围相同,internal在同一模块中可以使用
(2)在java中用static来修饰静态成员变量和静态方法,在kotlin中使用companion object来定义静态成员变量和静态方法。
(3)在java中声明变量是否可以更改用final,在kotlin中变量一定要用val(不可变的)和var(可变的)来修饰,尽可能多的使用val,使用val有许多好处:如线程安全的和可预测行为。
二、定义变量语序不同
(1)在java中总是先声明变量的类型在定义变量的名字如 int a,并且不用明显的初始化一个值,java会为类的基本类型的变量提供一个初始值,各类型初始值不同,非基本类型初始为null。即这里的a=0。
(2)在kotlin中先定义变量的名字再定义变量的类型,并且一定要初始化一个值,即str : String ,在kotlin中如果定义的时候也进行初始化就不用规定变量的类型,kotlin会根据初始化的值判定变量类型,如str =“abc”,str的类型为String。
三、关键字new
在java中创建一个类需要用关键字new,即StringBuffer sb = new StringBuffer(),在kotlin中不用使用new即val sb = StringBuffer()
四、数据类型
(1)在kotlin中没有基本数据类型int、float、long等,所有的都是对象,即Int、Float、Long等。没有void,如果函数返回值是void,实际时返回Unit对象。大多数情况下,Uint可以省略。
(2)数据类型转换方式
val i: Int = 1
val j: Long = x.toLong()
五 在kotlin中每句代码的结尾不用;
六、函数的写法
fun 函数名(参数:参数类型):返回值
如果没有返回值
fun 函数名(参数:参数类型)
构造函数用constructor()