美文网首页
Kotlin学习笔记 第二篇

Kotlin学习笔记 第二篇

作者: 光sail | 来源:发表于2021-05-09 00:40 被阅读0次
    接口:
    • 在java中实现接口时,接口里面的两个方法都必须实现,Kotlin接口如果改成这样的话,只需要强制实现 readBooks() 函数了,doHomework()可以选择写或者不写,不写的话则会打印do homework default implementation.。
    interface Study {
        fun readBooks()
        fun doHomework() {
            println("do homework default implementation.")
        }
    }
    
    访问修饰符:

    在 Java 中一共由 public、private、protected、default(什么都不写)这四种修饰符,在 Kotlin 中有 public、private、protected、internal 这四种修饰符,想要使用那种修饰符时直接将修饰符写在 fun 前面即可。

    • private 修饰符在两种语言中的作用一模一样,都表示只对当前类内部可见

    • public 修饰符的作用也是一致的,标识对所有类可见,但是在 Kotlin 中
      public 修饰符是默认项,而在 Java 中是 default,前面书写的函数都没有加访问修饰符,那么这些函数的访问权限全部是 public。

    • protected 在 Java 中表示对当前类,子类和同一个包路径下的类可见,在 Kotlin 中则表示只对当前类和子类可见。

    • Kotlin 抛弃了 Java 中的 default 可见性(同一包路径下的类可见)。引入了一种新的可见性概念,只对同一模块中的类可见,使用的是 internal 修饰符。比如我们开发了一个模块给别人使用,但是有一些函数只允许在模块内部调用,不想暴露给外部,就可以将函数声明为 internal修饰的。

    Java 和 Kotlin 可见性修饰符对照表

    image.png
    Kotlin 中的数据类:
    • 在 Kotlin 中只需要这一行代码即可,其中神奇的地方在于 class 前面的 data 关键字,有了这个关键字就表明我们想要声明一个数据类,Kotlin 会根据主构造函数中的参数帮你将 equals()、hashCode()、toString()方法自动生成,从而减少了开发的工作量。
    data class Cellphone(val brand: String, val price: Double)
    
    
    fun main() {
        val cellphone1 = Cellphone("Samsung", 1299.99)
        val cellphone2 = Cellphone("Samsung", 1299.99)
        println(cellphone1)
        println("cellphone1 equals cellphone2 " + (cellphone1 == cellphone2))
    } 
    
    • 如果将 class 前面的 data 去掉,那么它们的返回值就会变为 false。
    Kotlin 中的单例类:
    • 在 Kotlin 中实现单例要比 Java 中简单的多,只需要使用 object 关键字即可,在这其中 Kotlin 帮我们创建了一个 Singleton 类的实例,并且保证全局只存在一个 Singleton 实例。
    object Singleton {
        fun singletonTest() {
            println("singletonTest is called.")
        }
    }
    

    相关文章

      网友评论

          本文标题:Kotlin学习笔记 第二篇

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