Java中的对象与Scala中的对象之间的区别

时间:2017-03-30 05:17:29

标签: java scala

我已经开始学习Scala了。在Java中的对象与Scala中的对象之间是否有任何区别。根据我的理解,在Scala中创建的对象是单例。还有其他指示。

2 个答案:

答案 0 :(得分:2)

在Java中,Object(大写)是顶级的。所有课程都延伸Object。原始类型(intlong等)不会扩展Object,因为它们不是类

在Scala中,有一个不同的层次结构。一切都扩展了类Any:引用类型扩展AnyRef,值类型扩展AnyVal,与Java不同,没有基元。 (查看文档:{​​{3}})

但是你在Scala中引用的object是单身人士。拥有一个你想成为单身人士的班级是很常见的。在java中有一个实现它的模式(例如http://docs.scala-lang.org/tutorials/tour/unified-types),在scala中他们创建了object关键字作为速记。

还有一个特殊情况:当在同一个编译单元中定义了同名的classobject时,该对象称为伴随对象,基本上你可以想到它持有你在Java中的静态方法

有关http://www.javaworld.com/article/2073352/core-java/simply-singleton.html

主题的更多信息

答案 1 :(得分:0)

这取决于您在Scala中创建对象的方式。它并不像所有对象创建都是Singleton。

例如:

object Shiva { /*some code*/}

将创建一个单例对象。但是如果你像在Java中那样定义一个类,你可以创建多个实例。