Android kotlin初体验

Android kotlin初体验

前言:2017年kotlin的横空出世以来相信对于许多android开发者来说是又爱又恨;不管怎么说,既然google官方支持这门语言为android官方语言,那么对于我们andoid开发者来说还是要花点时间去学习一下;Kotlin是一个基于JVM的新的编程语言,由JetBrains开发。JetBrains,作为目前广受欢迎的Java IDE IntelliJ的提供商,在Apache许可下已经开源其Kotlin编程语言。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度可互操作,可以同时用在一个项目中。

 

  最近公司的项目比较大,因而考虑到维护成本,选择使用kotlin进行开发,那么今天就来说一下kotlin的一些基本的使用

 

创建一个类

通常我们创建一个java文件的时候只需new java class:

Android kotlin初体验

 

那么我们kotlin创建的时候需要指明为class;当你需要的是一个java bean的时候可以指明为file文件:

Android kotlin初体验

继承(extends)与实现(implements)

Java语法中的继承我们都是通过关键字extends,实现某些接口都是通过implements,写法上是这样的:

Android kotlin初体验

kotlin语法中我们得变的这么写:

Android kotlin初体验

可以看到kotlin的继承关系是通过 : 符号取代了我们java中的extends关键字,如果你是想实现某个接口的话只需要跟在继承关系后面跟上一个逗号  ,  即可, (注意:当然都是英文符号)

 

声明变量

以往我们声明一个全局的成员变量是这样的:private String mData; 那么在kotlin里,声明一个成员变量的话需要通过关键字 var 或者val ,前者声明的是值可改变,如果你所声明的变量值是不变的可以使用val,这好比java中的final声明一样,注意val在创建的时候必须要初始化,因为在以后是不可以改变的。下面是kotlin中的变量声明:

Android kotlin初体验

注:mDialog:BottomDialog?=null 这里的 ? = null表示改对象可以为空,如果你不想为空的话可以是这么写: mDialog = BottomDialog()

 

kotlin中的when表达式

kotlin中提供, when表达语句替代了javaswitch case,通常我们需要这么来写:

Android kotlin初体验

然而我们在kotlin中用when是这么来写的:

Android kotlin初体验

看起来还是比较简洁的

fun关键字

Kotlin中为我们提供了fun关键字来声明一个方法;java中我们写一个方法需要通过void关键字或者明确返回类型,比如我们写一个返回类型为String的方法:

Android kotlin初体验

那么如果改为用kotlin就得是下面这么写:

Android kotlin初体验

fun 声明了一个名为 getTextFormat方法,返回类型为String

startActivity的跳转

java中的通过startAcivity来做跳转,那么kotlin同样也是通过startActivity来做跳转,不同的是java中指定Intent的跳转类的写法

java中的写法:

Android kotlin初体验

Kotlin中的写法:

Android kotlin初体验

我们可以看到指定跳转的类需要用 ::class.java,而不是我们java通常的之间 .class,值得注意的是在java语法里面想要得到一个对象需要通过new来获取到一个对象,而在kotlin里面直接命名 = 你需要的对象即可,即上面的 intent = Intent();如果是需要携带数据同样的是通过 intent.putExtra()方法,这里就不过细讲了;

点击事件

Kotlin语法中的点击事件与java语法中的点击事件还大致没什么区别,setOnClickListener(this)这种写法在Kotlin里面也是可以的,不过studio会提示不建议这么写,官方推荐的写法是 onClickListener = this 

内部类

java语法里面,我们要声明一个内部内在一个class里面在声明一个class的写法为:

 

class TestActivity extends Activity{

 

  class TestRefreshReceiver extends BroadcastReceiver{

      @Override

       Public void onReceive(Context context, Intent intent){

    }

}

这是我们在java语法中的声明一个广播接收者的内部类,那么在kotlin语法里面,其声明一个内部类需要借助两个关键字:internal inner,那么的的写法变成了下面这样:

 

internal inner class TestActivity : BroadcastReceiver(){

    override fun onReceive(content: Content, intent: Intent){

    }

}

集合与数组

java里面我们用到的ArrayList集合,在kotlin里面一样沿用,只是语法上改为:arrayListof; 当你想要声明一个ArrayList时可以这么写:

var mDatas = ArrayListOf<String>()

判断集合不为空,kotlin不在是if(null!=mDatas), 而是 if(mDatas.isNotEmpty); 

另外我们还有经常用到的map,同样也是指定为hashMapOf<>() 

这里介绍一个String类型的数组:以为我们开发都是 new String[]{},那么换成kotlinvar mStrings = arrayOf(“”,””)

 

总结:kotlin语法只是变的更为简洁,方便开发者维护,其语法上的大致在官网上都能找到;kotlinjava代码可以通用,不产生冲突,唯一需要注意的是kotlin语法上的规范,其实studio3.0以后支持kotlin语言可以将一个java文件转换为kotlin文件,3.0以下需要自行配置插件。

 

以上内容为自己所开发运用到的一些整理,大家有好的意见不妨留言相互讨论,相互学习!!!!