object Student {
def test(): Unit = {
println("test")
}
}
object T5 {
def main(args: Array[String]): Unit = {
Student.test()
}
}
静态语法不是面向对象的,所以scala中没有静态语法,为了和java兼容,所以scala提供单例对象来模拟静态操作。使用Object关键字声明的类,如Student ,可通过类名直接访问方法,如Student.test()。Student ,会产生2个类文件,一个就是当前类的类文件,另一个是当前类$ 的类文件

类名$的类文件中的类 构造方法私有化,无法直接构建对象,在类的内部通过静态代码块可以返回对象,而这个对象只有一个,称之为单例对象,可通过这个对象访问其中的方法

Student.test()实际使用的是单例对象Student$.MODULE$,即伴生对象: Object声明的类中伴随着类所产生的单例对象
本文探讨了Scala中如何通过Object关键字创建模拟静态操作的单例对象,并重点讲解了伴生对象Student$.MODULE$在test方法调用中的作用。了解了Scala中如何利用单例对象进行类内静态行为的实现。
505

被折叠的 条评论
为什么被折叠?



