Platform: All
Version: Flash 9 and above
シンタックス
public var varName
public const kName
public function functionName() {
// ステートメントを記述
}
public class className {
// ステートメントを記述
}
public namespace nsName
引数
packageName:* ― パッケージの名前。
className:Class ― publicに指定したいクラス名。
varName:* ― publicに指定したい変数名。public属性は、変数がクラスの一部であるかどうかにかかわらず、適用することができます。
kName:* ― publicに指定したい定数名。public属性は、定数がクラスの一部であるかどうかにかかわらず、適用することができます。
functionName:Function ― publicに指定したい関数またはメソッド名。public属性は、関数がクラスの一部であるかどうかにかかわらず、適用することができます。
nsName:Namespace ― publicに指定したい名前空間名。public属性は、名前空間がクラスの一部であるかどうかにかかわらず、適用することができます。
説明
クラスあるいは変数、定数、メソッドが、どこからでも呼出しできる指定です。クラスや変数、メソッドはデフォルトが、internalです。internalは、現行パッケージ内でのみ可視であることを意味します。クラスあるいは変数、メソッドをどこからでも呼出しできるようにするには、public属性を用いなければなりません。
例
つぎの例は、クラスファイル内におけるpublic変数の使い方を示します[*1][*2]。
package {
class User {
public var age:Number;
public var fname:String;
}
} // Userクラスの定義ここまで
var jimmy:User = new User();
jimmy.age = 27;
jimmy.fname = "jimmy";
trace(jimmy.age, jimmy.fname); // 出力: 27 jimmy
|
もしUserクラス内のpublic変数のいずれかをprivate変数に変更すると、その変数にUserクラスの外部からアクセスしようとしてもコンパイルエラーが発生します。
[訳者注*1] 原文のクラス定義には、つぎのようにpackageキーワードの記述がありません。
class User {
public var age:Number;
public var fname:String;
} // end of class User definition
|
[訳者注*2] クラスをpublicに指定しないと、パッケージの外部からアクセスができなくなります。たとえば、つぎのフレームアクションは、コンパイルエラーになります。
// フレームアクション
import myPackage.MyClass;
var obj:MyClass = new MyClass(); // コンパイルエラー
// ActionScript 3.0クラス定義ファイル: myPackage/MyClass.as
package myPackage {
// public class MyClass { // public指定でエラー解消
class MyClass {
function MyClass() {
trace("called");
}
}
}
|
|
Player
ActionScript 3.0/Flash Player 9以降。
関連項目
class internal private protected
出典
[ActionScript 3.0 Language Reference] > [Statements, Keywords & Directives] > [public attribute keyword]
作成者: 野中文雄
更新日: 2006年8月30日 [訳者注*2]を追加
作成日: 2006年8月27日