Kotlin学习笔记(二):Kotlin与Java对比
标签: javakotlinandroid语法
2017-05-31 16:45
155人阅读
收藏
举报
分类:
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(a: Int, b: Int)
}
1234
1234
或者这样写
class Test
constructor()
}
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