コース: Java 基本講座

今すぐコースを受講しましょう

今すぐ登録して、23,200件以上登録されている、業界エキスパート指導のコースを受講しましょう。

カプセル化する

カプセル化する - Javaのチュートリアル

コース: Java 基本講座

カプセル化する

このレッスンではオブジェクト指向における カプセル化について説明します。 カプセル化とは何でしょうか。 簡単に言うと オブジェクトの中にある特定の変数を 外部から変更したり参照したりすることが できないようにするということです。 いわばオブジェクトをカプセルに包んで 中を守るというイメージですね。 私たちの日常の生活の中でも このカプセル化と 同じような考え方が見られます。 例えば銀行の ATM を考えてみてください。 ATM の機械には 一般に公開されている部分と 非公開の部分があります。 例えば公開されている部分としては 何があるでしょうか。 ATM の画面 数字が表示されるスクリーンやボタン類は 誰でも外部の人が 自由に操作することができますね。 しかし ATM で非公開のものもあります。 ATM で非公開の部分は どんなところでしょうか。 それは中のお金 そしてその保管場所 あるいはコンピュータのハードウェア そのものですね。 こうしたものが外部から 自由に操作できてしまっては セキュリティ上問題があるので 非公開になってるわけです。 Java のプログラムを作る際にも クラスの中の特定の部分を あえて公開しないことによって 安全なプログラムを作ることができます。 例えば画面のコードをご覧ください。 [Person]クラスのインスタンスが 一つ生成されています。 タロウ君、8歳、男性ですね。 この[p]という変数に対して 例えば[age]という変数は 自由に操作できてしまいます。 呼び出し側で 「-99」という値を入力してしまえば タロウ君は マイナス 99 歳になってしまいます。 これは少し問題がありそうですね。 他にも[p]という変数に対して 性別を「10000」というような数字に 設定することもできてしまうわけですね。 [Person]クラスのコードを 見てみますと 性別のことろに関しては int 型の変数が使われています。 そしてそれが外部から 操作できるようになってしまっているために 「Man」か「Woman」 つまり「1」か「2」以外の数字も 自由に代入できてしまうわけです。 このようになっていると 思わぬバグの温床となり 将来さまざまな問題を 引き起こす可能性があります。 それでこの[Person]クラスは カプセル化する必要があるわけです。…

目次