BLOG

【新人ヤマちゃんの記録】6

こんにちは、新人のヤマちゃんです。

本日の学習内容をブログで振り返ります。

◆本日の内容

カプセル化

今日はカプセル化を学習しました。
カプセル化とは端的にいうと、アクセス制御を取り入れる考え方です。
プロジェクトの規模が大きくなるほど、多くのクラスとフィールドが作られます。
そのとき例えば、同名の変数に間違えてアクセスし値を書きかえてしまうような事故が起きる可能性があります。
そういったことを事前に考慮し、ミスが入り込むことを防ぐ基本の考え方としてカプセル化があります。

また、ここで登場するのが getter / setter です。
getter は (基本的に private になっている)フィールドにアクセスし値を取得するメソッドです。
一方、setter はフィールドに値を設定するメソッドです。

オブジェクト指向型の言語ではクラス名.フィールド名とかではなく、getter / setter を使って値のやり取りすることが強く推奨されています。

 

カプセル化が好まれる理由

メンバ変数のアクセス制御ができるようになる
クラス内部のデータ表現を変えた場合でも呼び出し側のコードを変更する必要がない
メンバ変数の参照や変更を追跡することができる
値の正当性チェックを入れることができる
オブジェクト指向とはそういうものである。

(引用:結局のところgetter/setterは要るのか?要らないのか?

独学で小さなプロダクトを作る場合、フィールドへのアクセス制御を考えることがあまりなく、意識したことのないルールでした。
初学者にとってはなぜ getter / setter が必要なのかわからない人も多いのでは、と思います。

◆所感

もっと早く知りたかったー!

◆さいご一言

スプラトゥーン2のサーモンランがめっちゃ楽しい。

BLOGトップへ戻る