美文网首页
kotlin-第三章(类与对象)

kotlin-第三章(类与对象)

作者: JuliusL | 来源:发表于2020-11-20 22:54 被阅读0次
  • 构造函数
  • 访问修饰符
  • 伴生对象
  • 单例类
  • 动态代理
  • kotlin中特有的类

09:kotlin的构造函数

kotlin的类默认是public final的,如果想去final,则需在class前加open关键字

class MainActivity : AppCompatActivity()

class MainActivity : AppCompatActivity(),View.OnClickListener

接口和父类无先后关系,父类后显示的写小括号表示,调用父类无参的构造方法。
如果MainActivity中没有实现构造方法,父类后的小括号可以省略

//跟在类名后面的是主构造函数
class AActivity(var int :Int) : AppCompatActivity(){
    //init是主构造函数的代码块
    init {
        println("主构造函数的代码块")
    }
    //这是次构造函数
    constructor()
}

10:伴生对象

【internal】访问修饰符

kotlin除了有private,protected,public还有一个internal

只能同个模块(Module)下访问。

伴生对象compaion object

class StringUtils {
    companion object {
        fun isEmpty(str: String): Boolean {
            return "" == str
        }
    }
}

fun main() {
    //kotlin code
    StringUtils.isEmpty("")
    //java code
    StringUtils.Companion.isEmpty("")
}
用伴生对象声明单例
class Single private constructor() {
    companion object {
        fun get(): Single {
            return Holder.instance
        }
    }
    private object Holder{
        val instance = Single()
    }
}

fun main() {
    Single.get()
}

11:by关键字的作用

动态代理
interface Animal{
    fun bark()
}

class Dog : Animal{
    override fun bark() {
        println("wang")
    }
}

class Zoo(animal:Animal):Animal by animal

fun main() {
    Zoo(Dog()).bark()
}

kotlin会将动态代理编译后变为静态代理,所以比java的动态代理效率高,java的动态代理本质上是通过反射,而kotlin动态代理本质上是通过静态代理去调用的。

数据类
枚举类
密闭类

相关文章

  • kotlin-第三章(类与对象)

    构造函数 访问修饰符 伴生对象 单例类 动态代理 kotlin中特有的类 09:kotlin的构造函数 kotli...

  • Kotlin-类和对象

    类和对象 类的创建和java还是比较类似的,属性和方法的定义,创建不用写new 在kotlin中如果要使用类的继承...

  • kotlin从入门到看开 ₅

    layout: posttitle: "kotlin-面向对象"subtitle: "前途和...

  • Kotlin-类与继承

    类 Kotlin 中使用关键字 class 声明类 类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号...

  • kotlin学习日记(5)

    kotlin-代理属性(by) 代理模式客户端使用一个代理对象实现对真实对象的访问,代理对象和真实对象实现相同的接...

  • 类与对象(类与对象定义)

    类与对象的定义和使用 如果在程序之中要定义一个类可以使用class关键字完成,而定义的语法如下: 在这个类中只是定...

  • 函数类和对象区别

    类与类:行为不同 对象与对象:数据不同

  • python入门开发学习笔记之类与对象

    本节重点 掌握什么是类、什么是对象 掌握如何定义及使用类与对象 了解对类与对象之间的关系 类与对象的概念 类即类别...

  • 类对象与类的对象

    类对象(obj.getClass)描述的是类的代码信息,比如哪些属性、属性是什么类型、变量名是什么、哪些方法、方法...

  • python-高级、面向对象

    一、类与对象 二、类和对象

网友评论

      本文标题:kotlin-第三章(类与对象)

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