Scala之面向对象中伴生对象的使用(四)

本文深入探讨了Scala中伴生对象的概念,解释了如何通过伴生对象实现类似于Java中静态方法的功能。通过具体案例,展示了如何在伴生对象中声明和调用静态内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在Java中,通常会用到既有实例方法又有静态方法的类;在Scala中可以通过类与类同名的"伴生"对象来达到相同的目的。所有的静态内容都可以放置在它的伴生对象中声明和调用。

案例
object AccompanyObject {
  def main(args: Array[String]): Unit = {
    println(Person.sex)
    Person.sayHi()

  }
}

// 伴生类
class Person {   // 非静态的内容写入到该类中 编译之后生成的类为ScalaPerson.class
  var name: String = _
}

// 伴生对象
object Person {  // 静态的内容写入到该类中 编译之后生成的类为ScalaPerson$.class
  var sex: Boolean = true

  def sayHi(): Unit = {
    println("object scala hi")
  }
}
重点总结
  1. 伴生对象中声明的全是”静态”内容,可以通过伴生对象名称直接调用
  2. 伴生对象对应的类称之为伴生类,伴生对象的名称应该要和伴生类名一致
  3. 伴生对象中的属性和方法都可以通过伴生对象名直接调用访问
  4. 所谓的伴生对象其实就是类的静态方法和成员的集合
  5. 从底层原理来看,伴生对象实现静态特性是依赖于 public static final Module$ 实现的
  6. 伴生对象的声明应该和伴生类的声明在同一个源码文件中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值