Essential ActionScript 3.0 読書メモ 第9回 インスタンス変数のアクセスコントロール

インスタンス変数のアクセスコントロール修飾子は、プログラムの中でその変数へのアクセスの可否を制御する。インスタンス変数で利用可能なアクセスコントロール修飾子は、public, internal, protected, privateの4つである。

publicとinternalはクラス定義の際と同様の効果がある。publicはパッケージの中からでも外からでもアクセス可能。internalは、そのインスタンス変数を定義したのと同一パッケージ内からのみアクセス可能。アクセスコントロール修飾子をつけずにインスタンス変数を定義した場合、その変数はinternalとなる。

protected修飾子をつけて宣言されたインスタンス変数は、その変数を定義したクラスと、そのクラスの子孫にあたるクラスからのみアクセス可能。

private修飾子をつけて宣言されたインスタンス変数は、その変数を定義したクラスの内部でのみアクセス可能。

privateで変数を定義することで、それぞれのインスタンスの情報を安全に格納し、コードの依存関係を弱めたり、おかしな値を代入してしまう事故を防ぐことができる。

一般に、全てのインスタンス変数にアクセスコントロール修飾子をはっきりと指定しておくことは、良いやり方である。

必要もないのにpublicでインスタンス変数を定義すべきではない。どのアクセスコントロール修飾子をつければよいのか迷ったら、最も制限の厳しいprivateを使うのがいい。後から制限を緩めるのは簡単だからである。

一方、仮にインスタンス変数をpublicで作っていたとして、その変数に外部のコードが依存していたら、その変数をprivateに書き換えるのは骨が折れる。

今日の進捗:210→220/4343

コメントを残す