美文网首页
Kotlin学习(四)

Kotlin学习(四)

作者: digtal_ | 来源:发表于2018-10-17 14:58 被阅读7次

对象表达式

在设置点击事件的时候常常会用到匿名类部类,在kotlin中匿名类部类表示如下:

 bt.setOnClickListener(object : View.OnClickListener{
      override fun onClick(v: View?) {
         println("clcik1")
      }
 })

 bt.setOnClickListener {//lambda
     println("click2")
  }

 bt.setOnClickListener(View.OnClickListener {//lambda
    println("click3")
  })

对象声明

在Kotlin中不存在静态变量,对象声明用Objcet关键字表示

   object Constants{
        val name = "myname"
        var android = "ANDROID"
        val app = "App"
    }

伴生对象

一个类可以设置对象声明,在类的内部可以使用对象声明,使用companion关键字声明,这样的对象称为伴生对象。

    class MyClass{
        companion object {
            fun create():MyClass = MyClass()
        }
    }

扩展函数

要声明一个扩展函数,我们需要在函数的名称前加上一个接收者类型并且加上.符号

    fun MutableList<Int>.swap(index1: Int, index2: Int) {
        val tmp = this[index1] // this对应list
        this[index1] = this[index2]
        this[index2] = tmp
    }

    val l = mutableListOf(1, 2, 3)
    l.swap(0, 2) // 在 `swap()` 函数中 `this` 持有的值是 `l`
    println(l)

This表达式

在类的成员中,this表示当前类的对象,在扩展函数或带接收者的文本函数中,this在.的左边,表示接收者参数


    class C {
        //默认带有@C标签
        //this表示C
        val c = this

        inner class D {
           fun Int.m(){//默认带有@m标签
               //表示C
               val a = this@C
               //表示D
               val b = this
               //表示D
               val c = this@D
               //
               val d = this@m
           }
        }

    }

修饰符

Kotlin有四种可见性修饰符,分别是public,private,protected,internal,默认的修饰符是public,除了internal之外,其他三种修饰符与Java的访问权限一样,private修饰的属性是不会自动生成get和set方法的

open class D{
        private val a = 1

        protected open val b = 2

        internal val c = 3

        val d = 4//默认为public final

    }
    class E :D(){
        override val  b =5//只有b能被重写
    }

数据类

Kotlin的惯用语法是有写POJO类,一般写那种类都是用data修饰的类,也就是数据类表示,只保存数据的类。

  data class User(val name: String, val age: Int)
  val user = User("zhan", 1)
  val copy = user.copy(age  =3)

相关文章

  • Kotlin学习(四)

    对象表达式 在设置点击事件的时候常常会用到匿名类部类,在kotlin中匿名类部类表示如下: 对象声明 在Kotli...

  • Kotlin 学习四

    一: 区间、数组、集合① 区间(或叫作范围) ② 数组 Array ③ 集合 二: for 循环语句 三:whil...

  • Kotlin学习之Kotlin初识

    Kotlin学习之Kotlin初识 @(Kotlin学习) 一、什么是Kotlin? Kotlin,是JetBra...

  • Kotlin学习笔记:类和接口

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin学习笔记:概述

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin 学习笔记:基本语法和函数

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin学习笔记:注解和反射

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin学习笔记:泛型

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin学习笔记:类型系统

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

  • Kotlin 学习笔记: lambda编程

    Kotlin学习笔记:概述Kotlin学习笔记:基本语法和函数Kotlin学习笔记:类和接口Kotlin学习笔记:...

网友评论

      本文标题:Kotlin学习(四)

      本文链接:https://www.haomeiwen.com/subject/zyvlzftx.html