语法区别
kotlin与java在定义参数上的区别,如下全局变量的定义,请通过名称对应,同一个名称在kotlin中出现多次表示这个变量有多种定义方式
全局变量定义区别
- Java
private final int num1 = 10;
private final String str1= "1234";
private int num2;
private String str2;
private Student student;
public static final int num3 = 10;
public static final String str1 = "str";
public static int num4 = 11;
public static int num5 ;
public static String str2;
- kotlin
private val num1 = 10
private val str1= "1234"
private var num2 = 0 // kotlin中没有int,也没有Integer,只有Int,需要默认给 0
private num2 by Delegates.notNull<Int>() // 其他如Long,Double,Float等数字类型相似
private lateinit var str2: String
private var str2: String? = null
private var student: Student? = null // 实体、类等基本如此定义
private lateinit var student: Student
companion object {
val num3 = 10
val str1 = "str"
var num4 = 11
var num5 = 0 // 另外定义方法看前面
var str2: String? = null // 另外定义方法看前面
}
通过以上可以很清楚的看出一些语法上的不同,主要体现在
- 不需要使用分号结尾
- 没有所谓的public,只要是加了private就是public
- static变量需要用 companion object {} 包裹才能在外部直接访问
- 没有int,double这些类型,所有的基础类型都是对象,相对与java来说更加的面向对象一些,即一切都是对象,所以在面对这些类型的时候我们需要给默认值0(其他也是可以哈,但是默认一般都是0,指在全局变量的情况下,局部变量可以不赋值)