apply():
当类或者对象有一个主要用途时,apply方法提供了很好语法机制
scala> class Foo {} defined class Foo scala> object FooMaker { | def apply() = new Foo | } defined module FooMaker scala> val newFoo = FooMaker() newFoo: Foo = [email protected]
写在object中时,使用方法:类名()
或者
scala> class Bar { | def apply() = 0 | } defined class Bar scala> val bar = new Bar bar: Bar = [email protected]47711479 scala> bar() res8: Int = 0
写在class中时,使用方法:变量名().
伴生对象,伴生类:
在scala中可以把object中的语句看成java等其他语言中的static语句,是该类所拥有的,不是具体对象的。
当object和class名相同时,他们称为彼此的伴生对象和伴生类,伴生对象中的语句,是类对应的静态部分。
伴生对象通常作为工厂模式使用,即可以做成单例对象。
单例对象:
class Bar private{ } object Bar { val instance = new Bar def apply() = instance }
时间: 2024-09-29 09:39:29