名も無い文系プログラマーのブログ -13ページ目

名も無い文系プログラマーのブログ

String [] StudyContents = {"Java", "IT関連の資格", "IT業界", "English", "Trip"};

for(int i = 0; i < StudyContents.length; i++){

System.out.print("学んでいく内容は" + StudyContents[ i ] + "の事です。");

}

 

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がシュトーーーークデキマーーース。

 

以上。