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

11 浏览
0 Comments

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

我开始学习Scala。Java中的对象和Scala中的对象有什么不同吗?据我所知,Scala中创建的对象是单例的。请问还有什么其他的指针吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这取决于您在Scala中如何创建对象。并非所有对象的创建都是单例的。

例如:

object Shiva { /*some code*/}

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

0
0 Comments

在Java中,Object(大写)是最高的类。所有类都继承自Object。原始类型(intlong等)不扩展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关键字作为简写。

还有一种特殊情况:当在同一个编译单元中定义了一个同名的classobject时,这个对象被称为伴生对象,基本上可以把它视为在Java中拥有的静态方法。

更多关于此主题的信息:http://docs.scala-lang.org/tutorials/tour/singleton-objects.html

0