先来总结下Kotlin较与Java的几点优势:
100%兼容Java
即用Java写的框架和类库都可以直接使用,无缝兼容语法优化,省略分号,没有get/set,自动类型推断等等
凡是有Java开发经验的很多都明显感觉到Java语法的啰嗦,而使用kotlin相较于原生Java至少可以减少30%的代码量空指针异常自动检测
即编译不通过,会有红色波浪线的提示,无需运行源码开源,良好的IDE支持(JetBrains亲儿子),可将Java代码直接转换成Kotlin代码
- 现已有少数用Kotlin开发的程序,完美运行,如:JetBrains账号系统,花瓣app,Kotlin中文博客https://blog.kotliner.cn/,被广泛的应用只是时间问题。
赶快来使用Kotlin吧,你还等什么?
- 声明变量和常量
//常量数组int[][][] arrs = new int[3][2][1];
val arrs = Array(3) { Array(2) { IntArray(1) } }
//空安全变量
var str: String = "hello"
var str1 = "word"
//可为空字符串变量
var str2: String? = null
- 创建对象
var artist = Artist(1, "Dylan", "http://www.cnblogs.com/tgyf/")
- 创建函数
//关键字 方法名 参数(参数名:参数类型) 返回值类型(?表示可空)
fun getArtict(a: Int, b: Int): Artist? {
return a+b
}
- 实体类的构造函数
constructor(name: String,age: Double?, auctionupset: Double?) {
this.nname = name
this.age=age
}
- 对象字段的赋值取值
val user = User()
//赋值
user.name = "tutu"
user.age = "23"
//取值
val name = user.name
val age = user.age
- when的使用
when(obj){
1->"1" //是否等于1
in 2..3->"2到3区间内" //是否在2到3的范围内
is String->"字符串类型" //是否是String类型数据
else->{
println("默认情况,默认返回0")
"0"
}
- 继承和实现
//继承,有()
class user : father() {
}
//实现,无()
class user : father{
}
- 方法重写
override fun test() {
println("在实现类中重写接口方法和重写父类方法,再fun前加override")
}