一.特性
集成安装就不细说 ,网上一大堆。android开发中可以使用androidstudio的插件 将开发好的java文件转化为kotlin的kt文件。但是目前还不支持将kotlin的kt文件转化为java文件,所以想把已经写好的项目转成kotlin项目的要做好备份啦。
kotlin和java一样都是通过将编写的代码最终转化为字节码文件在虚拟机(JVM)上运行的,所以kotlin可以和java无缝兼容 。
java在初始化构建时的速度比kotlin快,但是在增量构建(也就是第一次编译过后,进行修改后的编译)时比java要快,所以对于开发人员来说不可能项目一次编译完不进行修改就结束的,所以kotlin更快些。
二.语法
- 类定义
class test1 constructor(a :Int=1){//类头 主构造器
constructor(a: Int, b:Int):this(a){//二级构造器
print(a+b)
}
init {//初始化方法
print(a)
}
}
kotlin中类包含一个主构造器和n个次级构造器,主构造器包含在类头上,主构造器中只能包含初始化语句,不能有其他语句,初始化语句一般写在init方法中。当主构造器的参数都有初始化值时,系统会默认创建一个无参的构造器。
如果一个类有主构造器,则二级构造器必须通过this关键字直接或者间接的代理主构造器。当实例化该类时,如果传入2个参数,会先执行主构造器的初始化方法,然后在执行具体的二级构造器。
kotlin中类也是默认public 但和java不同的是这个public可以不用写,和java还有一点不同的是kotlin中的类默认是不可以继承的,如果需要继承的话 则在该类前面加上open关键字。所以取消啦final这个关键字。继承关系也不使用extend或者implement而是使用“:”这个符号,类似class A :B这样。
kotlin中基类不再是Object而是Any,object表示单例类(区分大小写,Object取消)。
kotlin中类实例化不使用new而是直接使用,var test = test1()。类中初始化属性时系统会默认实现getter setter方法,
test1.a.
- 变量定义
定义变量 用var ,定义常亮用val
var 变量名 :类型= 值 val 常量名 :类型= 值
- 函数定义
fun 函数名(参数:参数类型):方法类型{
语句
}
特点:函数的关键字用fun定义 ,使用“:”来定义参数类型,方法体内不需要“;”结尾。
kotlin和java的权限修饰符有点区别:java默认是default, kotlin 默认是public。
java | kotlin | ||
private | 本类 | private | 本类 |
default | 包内 | internal | 模块 |
protected | 包内,包外继承 | protected | 包内,包外继承 |
public | 包内,包外 | public | 所有 |