本篇作为scala快速入门系列的第二十篇博客,为大家带来的是关于伴生对象的内容。
伴生对象
在Java中,经常会有一些类,同时有实例成员又有静态成员。例如:
在scala中,要实现类似的效果,可以使用伴生对象来实现。
我们还可以使用伴生对象来实现快速创建对象,例如:
定义伴生对象
一个class和object具有同样的名字。这个object称为伴生对象,这个class称为伴生类
- 伴生对象必须要和半生类一样的名字
- 伴生对象和伴生类在同一个scala源文件中
- 伴生对象和伴生类可以互相访问private属性
示例
- 编写一个CustomerService类,有一个save方法,打印
服务类名称:保存客户
- 编写一个CustomerService伴生对象,定义一个私有变量,用于保存服务类名称
- 创建CustomerService对象,调用save方法
参考代码
private [this] 访问权限
如果某个成员的权限设置为 private[this],表示只能在当前类中访问。伴生对象也不可以访问。
示例
- 定义一个Person类,包含一个name字段
- 定义Person类的伴生对象,定义printPerson方法
- 测试伴生对象是否能访问private[this]权限的成员
示例代码
上述代码,会编译报错。但移除掉 [this] 就可以访问了
apply 方法
我们之前使用过这种方式来创建一个Array对象。
这种写法非常简便,不需要再写一个new,然后敲一个空格,再写类名。我们可以通过伴生对象的apply方法来实现。
定义
创建对象
示例
- 定义一个Person类,它包含两个字段:姓名和年龄
- 重写apply方法,使用Person类名就可以创建对象
- 在main方法中创建该类的对象,并打印姓名和年龄
参考代码
本期的内容分享就到这里了,喜欢的小伙伴们记得点个赞,持续关注哟~下一篇将为大家带来继承的相关内容,敬请期待٩(๑>◡<๑)۶