-
■異なるクラスの変数へのアクセス
Javaプログラムでは、機能ごとに複数のクラスを作成しますが、異なるクラスの変数に直接アクセス(変数の値を受け渡し)ができます。 異なるクラスの変数に直接アクセスする場合は、異なるクラスのメソッドを呼び出す時と同じように、まずはインスタンス化(初期化)します。 インスタンス化したら、変数名をそのまま記述すると、変数に直接アクセスできます。
サンプルソースコードには、アクセス修飾子を記述していません。 アクセス修飾子が指定されていない場合は、同じパッケージからのみアクセスできます。 パッケージを分けたりする場合は、アクセス修飾子も合わせてご確認ください。
■異なるクラスの変数に直接アクセスする
では早速、異なるクラスの変数に直接アクセスして、呼び出し元クラスで結果を表示してみましょう。 以下のサンプルソースコードをコンパイルして、実行してみてください。
サンプルソースコード class sampleA { public static void main(String args[]) { sampleB aaa = new sampleB(); System.out.println(aaa.test); System.out.println(new sampleB().test); } } class sampleB { String test = "変数test"; void method(){ System.out.println("method"); } }
実行結果として、「変数test」が2行、出力されます。 sampleBクラスで宣言した変数「String test」に、sampleAクラスから直接アクセスできている(値を受け渡している)ことが分かります。
■インスタンス化している間、変数の値は保持される
次は、異なるクラスの変数の値が、保持されているのかを確認します。 以下のプログラムを入力して、実行してみてください。
サンプルソースコード class sampleA { public static void main(String args[]) { sampleB aaa = new sampleB(); System.out.println(aaa.test); aaa.method(); System.out.println(aaa.test); aaa.method(); System.out.println(aaa.test); } } class sampleB { int test = 1; void method(){ test++; } }
プログラムを実行すると、順番に「1、2、3」が出力されます。 これは、sampleBクラスの「void method」内で「test++」により、1加算された値が保持されていることを意味します。
なお、サンプルプログラムは、分かりやすくする為、アクセス修飾子を記述していません。 実際に開発する際は、適切なアクセス修飾子を使用します。
» 次ページ「Java資格試験の練習問題(複数クラス編)」
トップページ » Java複数クラス入門 » 異なるクラスの変数に直接アクセスする方法
-
-
- 異国迷路のクロワーゼ
- 定価:609円
- 著者:武田 日向
- 出版:富士見書房
-
- げんしけん 二代目の壱
- 定価:580円
- 著者:木尾 士目
- 出版:講談社
-
- 乙嫁語り
- 定価:651円
- 著者:森 薫
- 出版:エンターブレイン
-
- ロッテのおもちゃ!
- 定価:599円
- 著者:葉賀 ユイ
- 出版:アスキー・メディアワークス
-
- ちはやふる
- 定価:440円
- 著者:末次 由紀
- 出版:講談社
-