staticについて

オマケの話です。
メソッド、フィールド、プロパティには、「static(スタティック)」という状態があります。
一体なんなのかというと、クラスから直接参照できるメソッド等のことを言います。

static宣言

static宣言、つまりstaticなメソッドなどを宣言するときは、
「function」「field」「property」の前に「static」をつけます。
static宣言
1
2
3
4
5
6
7
class CSample(){
  static function Speak(Text); //static宣言
}

function CSample.Speak(Text){
  Mes(Text);
}
こう宣言します。
使う際は、以下のどちらでも呼び出せます。
呼び出し
1
2
3
4
5
6
7
8
9
10
11
12
class CSample(){
  static function Speak(Text); //static宣言
}

function CSample.Speak(Text){
  Mes(Text);
}

CSample.Speak("Hello!"); //クラスから

Obj = CSample.Create;
Obj.Speak("Hello!"); //インスタンスから
static宣言されたメソッド等は、「クラス名.」で呼び出すことが出来ます。
CProcess.Startもその例です。
ただし、このように使えるということは、変化するものがあってはならないということです。
つまり、フィールドが入っている場合は使うのは難しい、ということです。
また、メソッドが入るのはかまいませんが、そのメソッド内でフィールドを使っている場合もstaticにすることは難しいです。
前へ / index
プログラム言語「Spinel
Copyright © 2005 - Giemsa All Rights Reserved.
NOTES Software.