Kotlin学习笔记资料二

作者: 才兄说 | 来源:发表于2017-10-20 22:01 被阅读20次

    如下关于kotlin内容都是本人近期学习整理的kotlin资料,可以对着输入尝试。另外,需要获得完整的笔记链接,可以关注“技术微讯”并输入kotlin即可获取笔记地址。由于时间精力限制,下面分享的是笔记的一部分,kotlin系列会持续更新。
    最后提供一个kotlin在线编码的地址:https://try.kotlinlang.org/#/Kotlin%20in%20Action/Chapter%202/2.1/1_HelloWorld.kt

    公众号首发地址:http://mp.weixin.qq.com/s/wI1UuLeADO5kPDB5QZYMJw

    接口相关:
    1.一个简单的Kotlin接口使用 interface 关键字来声明,所有实现这个接口的非抽象类都需要实现接口中定义的抽象方法。
    2.Kotlin在类名后面使用 冒号 代替了Java中的extends和implements关键字,一个类可以实现多个接口,但是只能继承一个类。
    3.override修饰符用来标注被重写的父类或者接口的方法和属性,并且是 强制要求的。


    4.如果一个类实现了两个接口,而这两个接口定义了相同的方法,并且都提供了该方法的默认实现,那么该类必须显示实现该方法,否则会在编译时报错;
    另外,调用父类或接口的方法,可以使用与Java相同的关键字 super,并在后面的尖括号中指明父类的名字,最后是调用的方法名。

    访问性修饰符:open、final、abstract
    1.在Kotlin中,类和方法默认都是final的,如果想允许创建一个类的子类,需要使用open修饰符来标示这个类,此外还需要给每一个允许被重写的属性或方法添加open修饰符
    2.抽象类中的抽象函数:没有函数体就默认是abstract的,不一定要加上关键字,其访问性始终是open的。
    3.抽象类中的非抽象函数:默认是final的,如果需要重写,那么需要加上open修饰符。
    4.open、final和abstract这三个访问修饰符都 只适用于类,不能用在接口当中。
    5.被重写方法必须加上override修饰符。

    可见性修饰符:
    public 所有地方可见;internal 模块中可见;protected 子类中可见;private 类中可见
    1.Java和Kotlin在可见性上的区别包括以下几点:
    在Java中默认的可见性是包私有的,而在Kotlin中,默认的可见性是public的。Kotlin用internal作为包可见的替代方案,它表示“只在模块内部可见”。
    2.Kotlin允许在顶层声明中使用private可见性,包括类、函数和属性,这些声明就只在声明它们的文件中可见,这是隐藏子系统实现细节的非常有用的方式。
    3.类的扩展函数不能访问它的private和protected成员。
    4.Kotlin中,一个外部类不能看到其内部类中的private成员。

    内部类和嵌套类:
    1.kotlin中是嵌套类,是一个静态内部类,不持有外部类引用,类似java中的内部类


    2.把嵌套类变成内部类需要使用inner修饰符,并且访问外部类时需要this@{外部类名}

    密封类:定义受限的类继承结构,使用sealed修饰符,对可能创建的子类做出严格的限制,所有的直接子类必须嵌套在父类中。


    这时候,我们在when表达式中已经处理了所有Expr的子类,就不再需要提供默认的分支(else分支),假如这时候我们给Expr添加一个新的子类Multi,但是不修改when中的逻辑,那么就会导致编译失败:
    解决:1.when中加上该分支 2.when加上默认的else分支

    构造方法:
    kotlin将构造方法分为两类:
    (java中则可以在类中声明一个或多个构造方法)
    1.主构造方法:主要而简洁的初始化类的方法,并且在类体外部声明。
    2.从构造方法:在 类体内部声明。
    3.红色部分是主构造方法,简化写法:class User(val nickname: String)
    (主构造方法:定义参数及参数类型属性)
    完整写法:


    4.子类继承父类,并传递参数

    5.kotlin中假如一个类没有声明任何的构造方法,将会生成一个不做任何事的默认构造方法,如果有子类继承了它,那么必须显示地调用父类的构造方法
    6.定义从构造方法:constructor

    7.子类调用父类的从构造方法:super
    8.子类调用自己的另一个构造方法:this

    实现在接口中声明的属性:


    关注作者公众号“技术微讯”即可第一时间查阅到kotlin系列的最新动态:
    技术微讯公众号.jpg

    相关文章

      网友评论

        本文标题:Kotlin学习笔记资料二

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