setter,getterメソッドの備忘録書いていきます。
実際に自分でコードを書いてました。
実行結果はこちら
setter,getterメソッドを語る上で登場するのがカプセル化ですね。
強さはアクセス修飾子で決まっています。
強い順で並べると
private → デフォルト → protected → public
です。
privateは同じクラス内ならアクセス可能。
デフォルトは同じパッケージ内のみ。
protectedは同じパッケージとprotectedを継承した子クラスからのみです。
publicは好きなだけアクセスしてくれです。
はて?同じパッケージってなんぞやって事なんですが
例えば野村系列の会社と日立系列の会社があります。
野村系列は野村のパッケージ
日立系列は日立のパッケージ
って言う感じです。
パッケージはそれぞれ複数のクラスからなります。一つの可能性も無くはないですが...
そして継承した子クラスに関しては親会社に対しての子会社です。
子会社を親会社を継承して作成したのなら、親会社のフィールド内容(インスタンス変数)にはアクセスできます。
自分のアクセス修飾子に対する理解はこんな感じです。
さて本題はsetter,getterメソッドです。
setterは値を設定するメソッド。
getterは値を取得するメソッド。
そのままですね笑
画像での処理はメインメソッドからTestクラスを元にhuman1としてインスタンス化。
human1.setName("Sen");でSenを引数として設定。
設定した値をTestクラスのsetメソッドのパラメータで宣言した変数 nに代入。
name = n で "Sen"を値渡し。
ここまででsetは終わり。
この時点でインスタンス化したhuman1からtalkメソッドを実行すると実行結果の4行目までの内容が出力されます。
最後の1行、My name is Sen に関してはこれだけでは実行できません。
理由はTestDriveクラスでSystem.out.println(name);を実行してもTestクラスでprivate設定された値にはアクセスできない為です。
ここで登場するのがgetterメソッド。値を取得するんです。(間接的に)
まずはTestクラス内にgetterメソッドを用意。
"内容はnameの値を返します"です。
TestDriveクラスでgetName()を実行すると!!! Senがシュトーーーークデキマーーース。
以上。


