Java中的对象与Scala中的对象之间的区别
Java中的对象与Scala中的对象之间的区别
我开始学习Scala。Java中的对象和Scala中的对象有什么不同吗?据我所知,Scala中创建的对象是单例的。请问还有什么其他的指针吗?
admin 更改状态以发布 2023年5月23日
在Java中,Object
(大写)是最高的类。所有类都继承自Object
。原始类型(int
,long
等)不扩展Object
,因为它们不是一个类。
在Scala中,有一个不同的继承体系。所有的事物都扩展自Any
类:引用类型扩展自AnyRef
,值类型扩展自AnyVal
,不像Java,没有原生类型。(查看文档:http://docs.scala-lang.org/tutorials/tour/unified-types)
但是你在Scala中所指的object
是一个单例的。有一个类,你想要它成为单例很常见。在Java中有一种模式来实现它(例如http://www.javaworld.com/article/2073352/core-java/simply-singleton.html),在Scala中,他们创建了object
关键字作为简写。
还有一种特殊情况:当在同一个编译单元中定义了一个同名的class
和object
时,这个对象被称为伴生对象,基本上可以把它视为在Java中拥有的静态方法。
更多关于此主题的信息:http://docs.scala-lang.org/tutorials/tour/singleton-objects.html