理解 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