伴生类和伴生对象
// 伴生对象 object Ass{} // 伴生类 class Ass{}
要求: 伴生类和伴生对象要在同一个.scala文件并且名字相同
Java的静态成员和非静态成员都写在一个类里. 而scala静态成员需要写写在伴生对象里面.
伴生类需要用 new 来创建,而伴生对象不用new.
使用伴生对象创建伴生类的实例需要定义apply()方法
package base object runDM { def main(args: Array[String]): Unit = { // // Array的伴生类和伴生对象 // // 伴生类方式创建 // val arrC = new Array[Int](5) // // 伴生对象方式创建 // val arrO = Array[Int](5) // new 创建Ass类 val assC = new Ass("new create!") // 使用伴生对象隐式使用apply方法创建 Ass类对象 val assO = Ass("create!") println(assC.getName) println(assO.getName) } } // Ass类的伴生对象 object Ass { // 静态方法 def show(): Unit = { println("Object Ass!") } // apply方法需要 (), 类似于Ass类的构造器 def apply(): Ass = new Ass() def apply(name: String): Ass = new Ass(name) } // Ass object的伴生类 class Ass { private var name: String = _ def this(name: String) { this() this.name = name } def getName: String = this.name }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想