使用Kotlin实现Android简单Demo,对比JAVA实现分析具体语法不同之处(一)
写在之前:Android O 版本发布之后android已经支持Kotlin语言的开发,因此实现一个简单的Demo感受一下Kotlin和JAVA之间的差别
首先生成一个默认的MainActivity文件对比JAVA生成的MainActivity代码查看都有什么差别
一.准备工作
- 环境 IDE:AndroidStudio3.0(预览版)—支持使用Kotlin直接编写项目
- JDK:1.8
- 下载安装完之后点击File->New->New Project 勾选 Include Kotlin Support
- 工程建成之后,在之前New class 的菜单栏会出现 Kotlin File/Class 条目,点击该条目即可新建Kotlin文件,其后缀名为.kt 至此则完成新建文件,可以开始编码了
二.对比Kotlin工程中默认生成的MainActivity.kt 和JAVA工程中默认生成MainActivity.java的区别
MainActivity.Java 代码如下
package com.yunzhongjun.weiyang.java_demo_kotlin;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
对比MainActivity.kt 代码如下
package com.yunzhongjun.weiyang.kotlin_demo_java //包声明和Java语法一样
//文件资源引入和Java也一样
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
//1.Kotlin中也有类声明和Java类似也是用class标识
//2.Kotlin中类继承对比JAVA中使用 extends 继承父类和使用 implements实现接口的差别是统一使用":"来表示。多实现的父类之间用","分开即可
//3.继承的父类若无显式的构造函数实现则需调用其默认的空参构造函数,若父类为空参构造函数,则子类声明的时候无需在声明之后在跟构造函数
class MainActivity : AppCompatActivity() {
//1.对比JAVA中的@Override 注解标识,KOtlin中直接在方法前添加override进行覆写父类方法标识
//2.Kotlin中函数(类比JAVA中的方法)声明 使用fun 关键字声明
//3.Kotlin中函数的参数生命为(变量名:变量类型)
//4.Kotlin中函数返回值类型声明如下 fun 函数名(变量名:变量类型):返回值类型
//5.Kotlin中声明的类型一般会加上? 表示可接受null类型,需要注意的是在Kotlin中A和A?为不同类型,因此在使用中有时侯需要在确认A为非null是使用a!!来把类型为A?的实例转化为A类型,进而才能使用A实例对应的相关属性和方法
//6.Kotlin中super使用类似JAVA
//7.Kotlin中方法调用传参也和JAVA中类似,需要注意生命为A?时传入的也需要是A?而不能是A
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
对比可以看到
- Kotlin中包声明和Java语法一样
- Kotlin文件资源引入和Java也一样
对比Kotlin Clas声明有以下区别
- 1.Kotlin中也有类声明和Java类似也是用class标识
- 2.Kotlin中类继承对比JAVA中使用 extends 继承父类和使用 implements实现接口的差别是统一使用”:”来表示。多实现的父类之间用”,”分开即可
- 3.继承的父类若无显式的构造函数实现则需调用其默认的空参构造函数,若父类为空参构造函数,则子类声明的时候无需在声明之后在跟构造函数
对比Kotlin函数和Java中的方法可以看到有以下区别
- 1.对比JAVA中的@Override 注解标识,KOtlin中直接在方法前添加override进行覆写父类方法标识
- 2.Kotlin中函数(类比JAVA中的方法)声明 使用fun 关键字声明
- 3.Kotlin中函数的参数生命为(变量名:变量类型)
- 4.Kotlin中函数返回值类型声明如下 fun 函数名(变量名:变量类型):返回值类型
- 5.Kotlin中声明的类型一般会加上? 表示可接受null类型,需要注意的是在Kotlin中A和A?为不同类型,因此在使用中有时侯需要在确认A为非null是使用a!!来把类型为A?的实例转化为A类型,进而才能使用A实例对应的相关属性和方法
- 6.Kotlin中super使用类似JAVA
- 7.Kotlin中方法调用传参也和JAVA中类似,需要注意生命为A?时传入的也需要是A?而不能是A