首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scala之单例对象

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[93]篇文章,欢迎阅读和收藏】

1 基本概念

Scala 比 Java 更为面向对象的特点之一是 Scala 不能定义静态成员,而是定义单例对象 (singleton object) 。除了用 object 关键字替换 class 关键字以外,单例对象的定义基本与类定义一致。

2 术语解释

单例对象:对于 Java 程序员来说,可以把单例对象当作是 Java 中可能会用到的静态方法工具类。也可以用类似的语法做方法调用:单例对象类 . 方法名。

3 详细说明

Scala 不能定义静态成员,而是代之定义单例对象 (singleton object) 。以 object 关键字定义。

对象定义了某个类的单个实例,包含了你想要的特性:

当你在应用程序中需要一个新的唯一账号时,调用 Account.newUniqueNumber() 即可。

对象的构造器在该对象第一次被使用时调用。

在下面几个场景下可以使用 Scala 单例对象:

- 作为存放工具函数或常量的地方

- 高效地共享单个不可变实例

- 需要使用单个实例来协调某个服务时

类和单例对象间的差别是,单例对象不带参数,而类可以。因为单例对象不是用 new 关键字实例化的,所以没机会传递给它实例化参数。每个单例对象都被实现为虚拟类 (synthetic class) 的实例,并指向静态的变量,因为它们与 Java 静态类有相同的初始化语义。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200320A09KJK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券