Top | Contents | Prev | Next
クラスメンバーとインスタンスメンバーの違い

 クラスにはクラスメンバーとインスタンスメンバーが定義されています。この両方の違いとそれぞれのメンバーのアクセス方法を説明します。

インスタンスメンバー
 インスタンスメンバーはクラスのインスタンスに関連付けられるメソッド、プロパティです。下のコードを見ながらインスタンスメンバーはどのような時に使うのかを見ていきましょう。(コード内の public キーワードはクラスの属性です。ここでは理解してなくても構いません。)

[SampleClass.as]
package 
{
	public class SampleClass
	{
		//インスタンスプロパティ
		public var myNum:int=100;
		//インスタンスメソッド
		public function myFunc():void
		{
			trace("インスタンスメソッドを実行しました。");
		}
	}
}

上記のコードのSampleClass 内にはインスタンスプロパティ、インスタンスメソッドが定義されています。(青いコード内の部分)このメンバーにアクセスするにはSampleClassというクラスのインスタンスを作成する必要があります。では実際にこれらのメンバーにアクセスしてみましょう。

インスタンスプロパティにアクセスする方法

・まず最初に上記のコードをasファイルに保存して名前をSampleClass.asにして保存してください。

・次に新規ファイルFlash(AS3.0)を開き、メインタイムラインの1フレーム目を選択してF9を押してアクションパネルを開いてください。これから説明していくコードを記述していきます。

・最初にSampleClassというクラスのインスタンスを作成する為に下記の様に記述します。これでmyObjというSampleClassのインスタンスが作成されました。
var myObj:SampleClass= new SampleClass();

・上記のコードに続いてインスタンスプロパティを出力する為にtraceステートメントを記述します。パラメータはmyObjのインスタンスプロパティmyNumにします。myNumはSampleClass内で定義したインスタンスプロパティです。しつこいようですが、myObjはインスタンスになります。インスタンスメンバーはこのmyObjというインスタンスに関連付けます。
var myObj:SampleClass= new SampleClass();
trace(myObj.myNum);

・上記の2行を記述したらCtrl + Enter キー (Windows) または Command + Enter キー (Macintosh) を押して実行結果を見てみましょう。SampleClassで定義したインスタンスプロパティmyNumの値が出力します。
出力


インスタンスメソッドにアクセスする方法

・まず最初に下記のコードをasファイルに保存して名前をSampleClass.asにして保存してください。

[SampleClass.as]
package 
{
	public class SampleClass
	{
		//インスタンスプロパティ
		public var myNum:int=100;
		//インスタンスメソッド
		public function myFunc():void
		{
			trace("インスタンスメソッドを実行しました。");
		}
	}
}

・次に新規ファイルFlash(AS3.0)を開き、メインタイムラインの1フレーム目を選択してF9を押してアクションパネルを開いてください。これから説明していくコードを記述していきます。

・最初にSampleClassというクラスのインスタンスを作成する為に下記の様に記述します。これでmyObjというSampleClassのインスタンスが作成されました。
var myObj:SampleClass= new SampleClass();

・上記のコードに続いてインスタンスメソッドにアクセスする為にインスタンスmyObjの後にSampleClass内で定義したインスタンスメソッドmyFunc()を記述します。
var myObj:SampleClass= new SampleClass();
myObj.myFunc();

・上記の2行を記述したらCtrl + Enter キー (Windows) または Command + Enter キー (Macintosh) を押して実行結果を見てみましょう。SampleClassで定義したインスタンスメソッドmyFuncが呼び出されtraceステートメントにより"インスタンスメソッドを実行しました。" のテキスト値が出力されます。
出力
クラスメンバー
 クラスメンバーはクラス全体に関連付けられるメソッド、プロパティの事です。クラスメンバーは必ずstaticキーワードが使用されます。逆にstatic キーワードがないものはクラスメンバーではないということです。下のコードを見ながらクラスメンバーはどのような時に使うのかを見ていきましょう。(コード内の public キーワードについてはここではまだ覚えなくても構いません。)

[SampleClass2.as]
package 
{
	public class SampleClass2
	{
		//クラスプロパティ
		public static  var firstName:String = "Kent";
		public static  var lastName:String = "Oeda";
		//クラスメソッド
		public static function myFunc():void
		{
			trace(firstName + "からのお知らせ。");
		}
	}
}

上記のコードのSampleClass内にはクラスプロパティ、クラスメソッドが定義されています。(青い部分)このメンバーはインスタンスを作成しなくてもSampleClass2から直接にアクセスする事ができます。では実際にこれらのメンバーにアクセスしてみましょう。

クラスプロパティにアクセスする方法

・まず最初に上記のコードをasファイルに保存して名前をSampleClass2.asにして保存してください。

・次に新規ファイルFlash(AS3.0)を開き、メインタイムラインの1フレーム目を選択してF9を押してアクションパネルを開いてください。これから説明していくコードを記述していきます。

・最初にSampleClass2というクラスの中のクラスプロパティ、FirstName,LastNameにアクセスしてみます。まず変数 fn にはクラスプロパティfirstNameを格納、続いて変数 ln にlastNameを格納します。
var fn :String= SampleClass2.firstName;
var ln :String= SampleClass2.lastName;


・上記のコードに続いてtraceステートメントを記述します。パラメータはfn,lnの二つです。
var fn :String= SampleClass2.firstName;
var ln :String= SampleClass2.lastName;
trace(fn,ln);

・上記の3行を記述したらCtrl + Enter キー (Windows) または Command + Enter キー (Macintosh) を押して実行結果を見てみましょう。SampleClass2で定義したクラスプロパティの値が表示されます。
出力


クラスメソッドにアクセスする方法

・まず最初に下記のコードをasファイルに保存して名前をSampleClass2.asにして保存してください。

[SampleClass2.as]
package 
{
	public class SampleClass2
	{
		//クラスプロパティ
		public static  var firstName:String = "Kent";
		public static  var lastName:String = "Oeda";
		//クラスメソッド
		public static function myFunc():void
		{
			trace(firstName + "からのお知らせ。");
		}
	}
}

・次に新規ファイルFlash(AS3.0)を開き、メインタイムラインの1フレーム目を選択してF9を押してアクションパネルを開いてください。これから説明していくコードを記述していきます。

・やり方は簡単でSampleClass2というクラス名を記述して、そのクラスに定義されているクラスメソッドmyFunc()を記述してアクセスします。
SampleClass2.myFunc();

・上記のコードを記述したらCtrl + Enter キー (Windows) または Command + Enter キー (Macintosh) を押して実行結果を見てみましょう。
出力
トップへ
Top | Contents | Prev | Next