インスタンスを作り参照を参照型変数に入れたことで、クラスを使う準備ができました。
今回は実際に使ってみましょう。
参照型変数でフィールドを使う
インスタンスへの参照を参照型変数refに入れたことで、ref変数を通してインスタンスを操作できるようになりました。
では、このref変数を通して、インスタンス内にあるdata変数に数値を入れてみましょう。
// インスタンスに入っているdataフィールドに
// 数値を入れます。
ref.data = 100;
// ref変数内の参照を通して、SimpleClassクラスの // インスタンスに入っているdataフィールドに // 数値を入れます。 ref.data = 100;
まず、インスタンス内に作られた変数のことを「フィールド」と言います。
int型の変数dataは「SimpleClassクラスのdataフィールド」ということになります。
このフィールドを使用する場合には「参照型変数.フィールド」という書き方をします。
「参照型変数.フィールド」と書くと、それが「参照型変数内の参照が指すインスタンスのフィールド」という意味になります。もっと単純に考えるのなら、「ref.data」は「refのdataフィールド」と読み替えればいいでしょう。
「ref.data」は「dataフィールド」のことですから、「ref.data = 100」は「data = 100」と同じ、つまりdataフィールドに100を入れている、というわけです。。
インスタンスはデータの入れ物
このように、参照型変数を通して、インスタンスの中にあるフィールドに数値を入れることができました。
1つのクラスの中にたくさんのフィールドを用意することができます。インスタンスを作ることでそのインスタンスの中にフィールドが作られ、そのフィールドへ参照を通してデータを入れることができるというわけです。
では、今度はインスタンス内のフィールドから値を取り出してみましょう。
と言っても、方法は値を入れたときと同じです。
System.out.println( ref.data );
// 出力結果:
// 100
// 今度はそれを取り出して出力します。 System.out.println( ref.data ); // 出力結果: // 100
先ほどと同じように「参照型変数.フィールド」と書くことでフィールドを指定できます。
「ref.data」はdataフィールドのことなので、println()メソッドにdataフィールド内の値(ここでは100)を渡して、その値が出力されます。
このように、フィールドは普通の変数とまったく同じように使うことができます。
違うのは「参照型変数.フィールド」としなければいけない点です。フィールドはインスタンスの中に入っているので、そのインスタンスを指定するため「参照型変数」をくっつけるわけです。
違うのはそこだけで、それ以外は普通の変数と同じです。難しく考えず使っていきましょう。