Kotlin快速入门(1) -- 与Java的对比学习

这篇博客对比了Kotlin与Java的基础语法,包括变量定义、函数声明、字符串模板、数组以及流程控制语句。Kotlin的变量分为不可变(val)和可变(var),函数支持表达式形式,字符串模板简化了拼接,数组操作更简洁。流程控制语句中,Kotlin的if、when、for和break/continue/return的用法与Java有所不同。此外,还介绍了Kotlin的类和继承、接口实现、重写规则以及常见类如嵌套类、内部类和数据类的特性。
摘要由CSDN通过智能技术生成

本篇博客 按照Kotlin官方文档,总结出了Kotlin与Java相比,常用语法的不同之处,方便快速入门Kotlin,本人才疏学浅,如有错误还请指正。

基础语法

1.定义变量:

Kotlin中的基本数据类型和Java差不多,只是形式上每种数据的首字母都是大写的:
Int Long Short Byte Float Double

不可变(只读)的变量

Java

final int a = 1;  

kotlin

val a = 1  
val a : Int = 1    

在Kotlin中,变量如果被初始化了,他的值是可以被推导出来的,所以这里既可以不指定他为Int类型,让编译器自己去推导,也可以显式指定出来。
此外,Kotlin中每句话结尾可以不使用分号!

可变的变量

Java

int a = 1  

Kotlin

var a = 1
var a : Int = 1

在Kotlin中,val用于修饰不可变的(只读)变量,就类似于Java中的final关键字,var用于修饰可变的变量,就类似于Java 中的普通的变量。 与 Java不同的是变量的名字在前面,变量的类型在后面,中间要以:隔开。
此外,在Kotlin中一条语句的结尾可以不用写;,当然如果写上也不会报错。

2.定义函数:

Java

public void eat(String food){
    System.out.println("I like eat "+ food);
}  

这样一个简单的Java方法对应到Kotlin中的语法如下:

kotlin

public fun eat(food : String) : Unit{
    println("I like eat $food")
}

当然,在kotlin中如果没有显示制定访问修饰符,那么默认为public,这就意味着这里的public可以省略,这里的Unit就对应于Java中的void,但在Kotlin中,如果没有返回值,那么Unit也是可以省略的,即下面这种形式:

fun eat(food : String){
    println("I like eat $food")
}

$ dollar符号是模板表达式开始的标志,这里可以理解为“取出变量food的值”,值得注意的是,Java中的System.out.println()在Kotlin中变成了println(),这和C语言中的输出函数的名字一样了。
此外,函数的参数还可以有默认值:

public fun eat(food : String = "Apple") : Unit{
    println("I like eat $food")
}

3.字符串模板

字符串可以包含一个模板表达式,它的结果会被连接到字符串中,在Java中,会用+号来达到类似的效果。
Java

String  animal = "dog";
System.out.println("There is a "+ animal);
System.out.println("Dog has "+animal.length()+"words");

Kotlin

val animal = "dog"
println("There is a $animal")
println("Dog has ${animal.length} words")

如果$后面跟的不再是一个变量,就要加上{}来表示取这个式子的值

4.数组

Kotlin中的数组和Java中的区别有点大,在Kotlin中Array 类代表着数组,[] 可以用于访问数组的元素,实际上 [] 被进行了操作符的重载,调用的是 Array 类的 settergetter 方法
创建一个数组有三种方式:
(1)通过指定大小,使用arrayOfNulls直接创建一个空数组:

var ages = arrayOfNulls<Int>(3)

(2)使用xxxArrayOf创建并初始化数组:

var ages = intArrayOf(19,20,21)

(3)使用lambda创建并初始化数组:

var ages = IntArray(3, { i -> i + 19 })
for (j in ages) println("$j")

结果是:

19
20
21

或者直接这样写:

var ages = Array(3, { i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值