美文网首页
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