理解 Scala 中的静态成员

Suraj P 2023年1月30日
  1. Scala 中的单例对象
  2. Scala 中的伴生对象
理解 Scala 中的静态成员

在本文中,我们将了解 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

解释:

我们在上面的代码中创建了两个单例对象,即 ExampleMainExample 对象包含一个名为 display() 的方法,该方法在 Main 对象内直接使用对象名称 Example 调用,而不是创建一个对象然后调用它。

以下是关于单例对象的一些要点:

  1. 在处理单例对象时,应始终存在 Main 方法。
  2. 我们不能创建单例对象的实例。
  3. 单例对象内部的方法具有全局可访问性。
  4. 单例对象可以扩展类和特征。

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
作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub