privateなクラスを定義する方法
Flexでprivateなクラスを定義する場合、パッケージ定義の外部で定義します。
- Flexでは、1つのソースファイルに複数のクラスを含めることが可能ですが、
- ファイルの外部にあるコードで使用できるのは各ファイルのクラス 1 つだけ。各ファイルのクラスのうち1つだけ、外部から使えるクラスとして、パッケージ宣言内で宣言できます。
- 他のクラスはパッケージ宣言の外にのみ書くことができ、それらはソースファイル外部にあるコードからは使えなくなります。
詳細はAdobe Flex 3 ヘルプ - パッケージと名前空間を参照。
package com.example { public class Kitten {} // パッケージ内には1つしかクラスを書くことができない。 // ↓はコンパイルエラー // public class Tiger {} // publicでなくても1つしかダメ。 //class Tiger {} //internal class Tiger {} //private class Tiger {} // そもそもクラスの定義では使えない //protected class Tiger {} // そもそもクラスの定義では使えない } // 内部クラスはパッケージ宣言の外に書く。 // パッケージ宣言の外にあるクラスは別のファイルのコードからは使用できない。 class Tiger {} // 修飾子はinternalしかつけられない。 //public class Tiger {} //protected class Tiger {} //private class Tiger {} internal class Tiger2 {} // internalはOK
Javaのノリで、クラス内にクラスを書いたり、パッケージ内に複数のクラスを書いたりするとコンパイルエラーになるので注意。