SyuchiNikuRingの備忘録

お勉強したことをまとめておく場所。中の人の理解や感覚で書いているから不正確なことも多いかも。

Java入門season7~カプセル化~

やっほー。今回はカプセル化についてまとめていきます。

カプセル化といえばCのイメージが強いですが、Javaオブジェクト指向の言語なので当然カプセル化があります。

 

カプセル化って?

他人が触れる範囲を限定することです。触れてほしくないものはカプセルに包んで触らせないということですね。メソッドやインスタンスで何度も書いてきた「public」や

 「private」が今回の主役になります。

 

ではさっそくいってみよー。

 

先ほどもちらっと触れました、「public/private」ですが、他人もアクセスできるもの、要はmainで呼び出せるものはpublicがついています。逆に他人に触れさせないもの、同じ書き方をすればmainで呼び出せないものにはprivateがついています。

ただし、mainからアクセスできない(=よそのクラスからは触れない)だけで、同じクラス内からであればアクセスできます。こうすれば、外の値に影響されずに済みます。

しかし、これでは外からprivateの値を取得したいときに困りますね。そんなときのために、値を返すだけのメソッド「ゲッター」があります。これです。

f:id:SyuchiNikuRing:20180829215133p:plain同じ名前の変数がprivateからpublicになっています。これにより外からアクセス可能になるわけです。

 

これまではprivateによりアクセスできなくなった場合にどのように値を取得するのかをまとめましたが、もう一つ、これまで通りのやり方ではアクセスできなくなり値を設定できなくなった場合の設定法をまとめます。

ここでは「セッター」 についてまとめます。

定義は、public (型) set(メソッド名)です。getがsetに変わっただけ。

 

f:id:SyuchiNikuRing:20180829222011p:plain外から渡される変数をクラス内の変数にthisを用いて渡しているだけです。

なのでいつも通り、どのデータ型の変数をクラス内の何の変数に代入するのかを書きます。本当にこれだけ。

 

今回はこんなところで。