理论教育 单例对象与伴生对象-Scala实战

单例对象与伴生对象-Scala实战

时间:2023-11-24 理论教育 版权反馈
【摘要】:单例对象Scala中没有静态方法和静态字段,Scala中使用object对象来实现同样的效果,object对象定义了某个类的单个实例,如:伴生对象在Scala中,可以通过类与类同名的“伴生”对象来实现既有实例方法又有静态方法的类。Scala伴生对象示例。类和它的伴生对象可以相互访问私有属性,类和伴生对象需保存于同一个源文件中。使用object伴生对象定义配置文件的应用较多。图2-7类和伴生对象

单例对象与伴生对象-Scala实战

(1)单例对象

Scala中没有静态方法和静态字段,Scala中使用object对象来实现同样的效果,object对象定义了某个类的单个实例,如:

978-7-111-54169-1-Chapter02-31.jpg

(2)伴生对象

在Scala中,可以通过类与类同名的“伴生”对象来实现既有实例方法又有静态方法的类。如例2-7所示。在Scala中,可以通过类与类同名的“伴生”对象来实现既有实例方法又有静态方法的类。定义类class University,类class University拥有自己的属性id,number(id直接调用伴生对象的newStudenNo方法赋值),类class University拥有自己的方法aClass;同时定义类class University的伴生对象object University,伴生对象object University拥有自己的属性学号studentNo,及新增一个学号的方法newStudenNo,返回新学号。伴生对象object University相当于Java的静态类,无须实例化,可以直接调用伴生对象的方法。如例2-7所示。

【例2-7】Scala伴生对象示例。(www.daowen.com)

978-7-111-54169-1-Chapter02-32.jpg

类和它的伴生对象可以相互访问私有属性,类和伴生对象需保存于同一个源文件中。使用object伴生对象定义配置文件的应用较多。

运行结果如图2-7所示。使用伴生对象University无需new一个对象实例,直接调用伴生对象University的newStudenNo方法,将studentNo学生学号加1,打印输出结果1;然后第二次调用伴生对象University的newStudenNo方法,学生学号再加1,打印输出结果2。

978-7-111-54169-1-Chapter02-33.jpg

图2-7 类和伴生对象

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈