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
説明:
上記のコードで、Example
と Main
の 2つのシングルトンオブジェクトを作成しました。Example
オブジェクトには、display()
という名前のメソッドが含まれています。このメソッドは、オブジェクトを作成して呼び出す代わりに、オブジェクト名 Example
を使用して Main
オブジェクト内で直接呼び出されます。
シングルトンオブジェクトに関するいくつかの重要なポイントは次のとおりです。
- シングルトンオブジェクトを操作するときは、
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