kotlin 单例、静态方法、常量、修饰符

一、object

使用 object 关键字定义一个单例类,通过单例类,去调用方法,这种方法也不叫静态方法,但是可以当作静态方法调用

/**
 * object
 * 天生单例
 * 1 并不用语法上面初始化
 * 2 不需要构造方法
 */
object Constants {
  //常量
const val tag: String = "ccc" var host: String = "127.0.0.1" private var port: String = "8080" //非静态方法,可当静态方法使用 fun doSomething(){ } }
Constants.doSomething()不是单例方法,可当单例方法使用

二、伴生对象

使用 companion object 为一个类创建一个伴生类,然后调用这个伴生类的方法,这个方法不叫静态方法,但是可以当作静态方法调用。

一个类中只能存在一个伴生对象。

class Dog(name: String, var age: Int) : Animal(), LoadingListener {

    /**
     * 伴生对象 static静态方法和静态变量
     */
    companion object {
        const val tag1: String = "aaa"
        private var tag2: String = "bbb"
        fun getName(): String {
            return tag2
        }
    }
}

Dog.getName()

真正的静态方法

1、使用 @JvmStatic 注解

2、顶层方法

三、延迟加载

1、lateinit

lateinit var sex :String

2、by lazy

  • 只能作用于val属性
  • 该属性调用的时候才会执行
  • lambda表达式只执行一次
     val sex :String by lazy {
         "1"
     }

 四、修饰符

常见修饰符

  • final 不能被继承,kotlin默认不能被继承
  • open 可以被继承覆写
  • abstract 必须被覆写 具有open属性
  • static 没有此关键字
posted @ 2022-11-30 17:33  随易来了  阅读(98)  评论(0编辑  收藏  举报