当前位置: 代码迷 >> 综合 >> 对象表达式与对象声明
  详细解决方案

对象表达式与对象声明

热度:73   发布时间:2024-01-30 11:57:16.0

对象表达式的格式:

object[:若干个父类型,中间用逗号隔开]{}
 override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main10)val myObject = object : MyInterface {override fun myPrint(i: Int) {println("i的值是$i")}}myObject.myPrint(100)}

这个是对象表达式

object MyObject{fun method() ="hello world
}override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)MyObject.method()}

这个是对象声明语法。这个后面是有一个名字的,对象表达式是没有名字的。

这些对象可以有超类型:

object DefaultListener : MouseAdapter() {override fun mouseClicked(e: MouseEvent) { …… }override fun mouseEntered(e: MouseEvent) { …… }
}

对象声明和对象表达式的差别:

  • 对象表达式可以赋值给一个变量;但是对象是不可以的赋值给一个变量,对象声明本身是声明了一个对象,是不能直接放到等号右边的。
  • 对象表达式是立刻初始化的或者执行的;对象声明是延迟初始化的,在首次访问的时候进行。
  • 伴生对象是在其所对应的类被加载时初始化的,对应于Java的静态初始化。
  相关解决方案