• 締切済み

C,C++,Javaの変数の種類

クラス、構造体の変数の中で外部からアクセスできないという設定があります。アクセスできないというのは、 0.値を見ることができるが変更はできない(定数のような感じ? 消費税率とか?) 1.値を見ることはできないが変更することはできる(銀行預金額面風?) 2.値を見ることも変更することもできない (どう利用するのでしょうか?) にわかれるように思います。もし2ならば、その変数は構造体、クラスの外部に影響を与えないように思います。すなわちそのような変数の使用が何を目的としているか不明になるように思いますが。 例えば、Xを2の意味で隠蔽していたとします。 Yを与えて、Z=Y*Xを計算し、Zの値を取り出すと、Xの値が間接的にわかることになります。これだと変数を隠蔽したことならないのでこのような使い方もエラーになるだろうと思いますが。 すなわち、アクセスできないとはどういう意味になるのでしょうか。 C,C++,Javaを同時に見ており、private, staticなどいろいろあって混乱してしまいました。 変数のアクセス制限・隠蔽についてどのように整理すればよろしいでしょうか。 よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

オブジェクト指向のカプセル化(データの隠蔽)のことだと思います。 隠蔽した変数は、用意したメソッド経由でしか読み書きできません。というか、変数の存在自体が隠蔽されている。 メソッドの返す値は、隠蔽された変数の値を使っていることはあり得ます。つまり、どのような変数が存在してその値をメソッドがどのように使うのかを知っていれば、間接的に分かります。 しかし、上に書いたように、変数の存在自体やメソッドのロジックが隠蔽されているので、外側の隠蔽された側としてはそういう情報を知りようがありません。

関連するQ&A