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