Kotiln 的基础,和Java的用法不同的地方

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39249422/article/details/83992480

Kotiln简单用法和java的不同之处

首先我们需要先创建一个Kotlin的项目  

首先我们先了解一下为啥要用kotlin好处有哪些?

首先了解一下kotlin的有点

  • 更少的空指针异常
  • 更少的代码量
  • 更快的开发速度
  • 更一致的开发体验

使用java要用大量的findViewById 而且每行代码都需要加一个没用的分号,还有switch语句需要加break;

再也不用findViewById

做过Android开发的人都知道,布局文件写的多了,findViewById也是一个很大的工作量,而且还要先声明变量,在findViewById然后再强转成我们的控件,使用方式一般如下

TextView username;
username=(TextView)findViewById(R.id.user)
username.setText("我是一个TextView");

如果使用Kotlin。我们可以直接这样写

user.text="我是一个TextView"

user就是我们布局文件声明的id,.text就想当与setText()给,在Kotlin语言中,我们看不到了像Java中的set/get方法了。

拼接字符串

java中 "Hello,"+str   而在kotlin 中 "Hello,$str"    少的时候看不出来效果但是如果很多字符串拼接的时候就可以体现出来kotlin的优势了,这里就不做示范了 

使用点击事件

kotlin使用点击事件

user.onClick {
    toast(" ${user.text}")
}

全局的点击事件和java的区别就是没有implements关键字表示实现接口。直接在类后面加上 View.OnClickListener实现方法就可以了

/**
 * 这种方法与java的区别是没有implements关键字表示实现接口。
   when就相当于java中的switch。
   “:”符号改为了“->”。
 */
override fun onClick(v: View?) {
    when (v?.id) {
        R.id.tv -> toast(" 我是kotlin")
        R.id.TextView -> toast(" 我是kotlin2")
    }
}

这就是点击事件 比java少了很多没用的代码 switch也变得更加简洁好看了

Kotlin中var和val的区别

    Kotlin中有两个关键字定义变量,这两个关键字外形看着差别很小就只差了一个字母,但实际差别很大的。

var str = ""
var str3: String? = null
var是一个可变变量,这是一个可以通过重新分配来更改为另一个值的变量。这种声明变量的方式和java中声明变量的方式一样。var  定义变量不能为 null 只能用字符串
val是一个只读变量,这种声明变量的方式相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。

Kotlin -- open, final, abstract 修饰符

在Kotlin中,所有的类默认都是final的。如果你需要允许它可以被继承,那么你需要使用open声明:

//这个类具有`open`属性,可以被其他类继承

open class People: Speakable{
        //`open`的方法被实现和覆写,该方法也是`open`的
        override fun say() {}
        //`final`属性的方法,不可被覆写
        fun sayHello() {}
        //`open`属性的方法,可以被继承和覆写
        open fun sayName() {}
}

当然,你也可以阻止某些方法被覆写:

open class People: Speakable{
    //`final`修饰一个原本具有`open`属性的方法,使其变得不可再被覆写
    final override fun say() {}
}

在kotlin中,abstract的用法几乎和Java一致,值得一提的是,当你使用abstract修饰符的时候,可以忽略open修饰符,因为被abstract修饰的类默认具有open属性。

上述表格仅适用于基类,对于接口类来说,你基本用不上fianlopenabstract,因为接口类默认是open,且不能被声明为final,如果接口类的方法没有函数体,那么其为abstract,但是不需要你明确指出他是abstract的。

Kotlin 对for循环做了简便

这个是java中的for循环

for (int i = 0; i >=4; i++){
Log.d("onItemSelected: ", i.toString())

下面是kotlin中的for循环  这个很简便一行就可以解决  而且在for循环也用..代替了

for (i in 0..4) Log.d("onItemSelected: ", i.toString())

kotlin可以节省很多代码,值得学习学习

猜你喜欢

转载自blog.csdn.net/qq_39249422/article/details/83992480