理解 Scala 中的静态成员
Suraj P
2023年1月30日
在本文中,我们将了解 Scala 中的静态成员。
现在,Scala 比 Java 更面向对象,但与 Java 不同的是,我们在 Scala 中没有 static
关键字。所以解决方案是使用伴生对象或单例对象。
Scala 中的单例对象
由于 Scala 没有 static
关键字,我们可以使用单例对象的概念。单例对象是一种为类定义单个对象的对象。
这为程序的执行提供了一个入口点。如果程序中没有创建单例对象,代码将编译但不会给出任何输出。
单例对象是使用 object
关键字创建的。
语法:
object name
{
//our code..
}
示例代码:
object Example
{
// Variables of singleton object
var name = "My name is tony stark";
var language = "We are learning Scala language";
// Method of singleton object
def display()
{
println(name);
println(language);
}
}
// Singleton object whose name is main
object Main
{
def main(args: Array[String])
{
//calling the method
Example.display();
}
}
输出:
My name is tony stark
We are learning Scala language
解释:
我们在上面的代码中创建了两个单例对象,即 Example
和 Main
。Example
对象包含一个名为 display()
的方法,该方法在 Main
对象内直接使用对象名称 Example
调用,而不是创建一个对象然后调用它。
以下是关于单例对象的一些要点:
- 在处理单例对象时,应始终存在
Main
方法。 - 我们不能创建单例对象的实例。
- 单例对象内部的方法具有全局可访问性。
- 单例对象可以扩展类和特征。
Scala 中的伴生对象
我们定义实例,即类中的非静态成员,并定义我们希望在与该类同名的对象中显示为静态
成员的成员。这种对象称为伴生对象,类称为伴生
类。
伴随对象和类应该在同一个源文件中定义。
示例代码:
class Example
{
var name = "My name is tony stark";
var language = "We are learning Scala language";
def display()
{
println(name);
println(language);
}
}
object Example
{
def main(args: Array[String])
{
//calling the method
var obj = new Example();
obj.display()
}
}
输出:
My name is tony stark
We are learning Scala language