kotlin 与 java 语法区别

xiaoxiao2021-02-28  119

Kotlin学习笔记(二):Kotlin与Java对比

标签: javakotlinandroid语法 155人阅读 评论(0) 收藏 举报 分类: Kotlin笔记(1) 作者同类文章 X

目录(?)[+]

基本类型String字符串表示打印操作换行操作常量和变量定义声明静态常量方法条件表达式 if语句三元运算符case表达 for循环迭代操作集合操作遍历集合和筛选操作声明方法构造方法生成get跟set方法

本篇文章我们将通过类比Java语法的方式学习Kotlin的基本语法和常用操作

基本类型

JavaKotlin位宽doubleDouble64floatFloat32longLong64intInt32shortShort16byteByte8

注: char在Kotlin不是基本数据类型,是独立的数据类型

String字符串表示

Java String name = "Java"; String sex = "Man"; String link = "name is :" + name + ",sex is:" + sex; 123 123 Kotlin

字符串可以包含模板表达式,即可求值的代码片段,并将其结果连接到字符串中。一个模板表达式由一个 $ 开始并包含另一个简单的名称

val name = "Kotlin" val sex = "man" val link = "name is $name,sex is: $sex" 123 123

打印操作

Java System.out.print("Java"); System.out.println("Java"); 12 12 Kotlin print("Kotlin") println("Kotlin") 12 12

换行操作

Java String text = "第一行\n第二行\n第三行\n"; 1 1 Kotlin

有两种类型的字符串字面量:

一种是可以带分割符的。跟Java一样一种是不可以包含分割符但可以包含其它字符。 由三个引号包裹(“”“) val text1 = "第一行\n第二行\n第三行\n"val text = """ |第一行 |第二行 |第三行 """.trimMargin() //去除空格 1234567 1234567

常量和变量定义

Java final String s = "Java"; String name = "Java"; int num = 5; 123 123 Kotlin

var 声明变量 val 声明常量

val s = "Java" var name = "Kotlin" var num = 5 1234 1234

声明静态常量、方法

Java static final String NAME = "name"; static final int SEX = 0; static void Test() { } 1234 1234 Kotlin

声明静态常量或者方法时,都是使用如下方式声明

companion object { internal val NAME = "name" internal val SEX = 0 fun Test() { } } 123456 123456

条件表达式

if语句

Java if( a == b){} if( a>=0 && a <=10){} if( a>0 && a <10){} 123 123 Kotlin if( a== b){} if( a in 0..10){} // 也可以按照Java写法 if( a>=0 && a <=10){} if(a in 1 until 10) //也可以按照Java写法 if( a>0 && a <10){} 123 123

参考Ranges使用

三元运算符

Java int num = a > b ? a :b; 1 1 Kotlin val num = if (a > b) a else b 1 1

case表达

Java String s; switch(a){ case 0: s = "a = 0"; break; case 1: s = "a = 1"; break; default: s = "default"; break; } 123456789101112 123456789101112 Kotlin val s = when(a){ 0 -> "a = 0" 1 -> "a = 1" else -> "default" } 12345 12345

for循环迭代操作

Java for(int i = 0; i <= 10; i++){} for(int i = 0; i < 10; i++){} for(int i = 10; i < 0; i--){} for(int i = 0; i <= 10 ; i+=2){} for(int i = 10; i < 0; i-=2){} for (String s : listString) {} for (Map.Entry<String, String> entry: map.entrySet()) {} 12345678910111213 12345678910111213 Kotlin

在下面使用的操作使用倒了Kotlin自带的Ranges使用

in 指定范围until 不包含downto 倒序step 指定步数跳跃 for(i in 0.. 10){} for(i in 0 until 10){} for(i in 10 downTo 0){} for(i in 0.. 10 step 2){} for(i in 10 downTo 0 step 2){} for(item in listString){} for ((key, value) in map) { } 12345678910111213 12345678910111213

参考Ranges使用

集合操作

Java List<String> listString = Arrays.asList("a","b","c"); listString.add("d"); Map<String,String> map = new HashMap<>(); map.put("a","1"); map.put("b","2"); map.put("c","3"); 1234567 1234567 Kotlin var listString = listOf("a","b","c") listString.add("d") var map = mapOf("a" to "1", "b" to "2", "c" to "3") 123456 123456

遍历集合和筛选操作

Java for (String s : listString){ System.out.println(s); } //筛选 for (String s: listString){ if(s.equals("a")){ System.out.println(s); } } 12345678910 12345678910 Kotlin listString.forEach { println(it) } //筛选 listString.filter{ it.equals ("a") } .forEach{ println(it) } 123456789 123456789

声明方法

不带返回值方法

Java void Test(){ } void Test(int a, String b){ } 123 123 Kotlin fun Test(){} fun Test(a : Int, b : String) { } 123 123

带返回值方法

Java int Test() { return 0;} int Test(int a, int b){ if(a > b){ return a; } return b; } 12345678 12345678 Kotlin fun Test() :Int { return 0} fun Test(a :Int, b :Int) :Int{ if( a > b ){ } return b } 12345678 12345678

构造方法

Java class Test{ public Test(){ } public Test(int a, int b){ } } 1234 1234 Kotlin class Test { constructor() {} constructor(a: Int, b: Int) {} } 1234 1234

或者这样写

class Test constructor(){ //constructor 可省略 constructor(a: Int, b: Int) : this() {} } 123 123

生成get跟set方法

Java class Test{ String a; int b; public Test(String a, int b){ this.a = a; this.b = b; } public String getA() { return a; } public void setA(String a) { this.a = a; } public int getB() { return b; } public void setB(int b) { this.b = b; } } 1234567891011121314151617181920212223242526 1234567891011121314151617181920212223242526 Kotlin

只需一行代码

data class Test(val a: String, val b: Int){ } 1 1

看完上面的文章,我们可以发现Kotlin语法比Java更加的直观和便捷,但是还是需要一段时间来适应Kotlin的语法习惯。

顶 0 踩 0     上一篇Kotlin学习笔记(一):AndroidStduio配置Kotlin环境

  相关文章推荐 • Kotlin学习笔记(二)——示例篇三 • Java线程池学习笔记二 • Kotlin学习笔记(3)- 语法 • JVM学习笔记(二)------Java代码编译和执行的整个过程(转) • android kotlin 学习笔记基础篇(一) • (事物学习笔记二) 对Java事物的理解 • Kotlin学习笔记(二)循环,跳转 • JVM学习笔记(二)------Java代码编译和执行的整个过程 • kotlin学习笔记001——kotlin简介 • Java Servlet学习笔记(二)初识Filter
转载请注明原文地址: https://www.6miu.com/read-27318.html

最新回复(0)