🎯
【Java】クラス解説12・カプセル化
カプセル化
カプセル化とは、privateに設定したインスタンス変数を操作するために、publicなメソッドを経由するよう実装することです。
セッター
インスタンス変数に値を設定するメソッドをセッターと言います。
ゲッター
インスタンス変数に値を取得するメソッドをゲッターと言います。
アクセサ
セッターとゲッターを合わせてアクセサと言います。
コード例と解説
public class Main {
public static void main(String[] args) {
// インスタンスを生成
MyClass obj = new MyClass();
// セッターを呼び出して、実引数を渡す
obj.setFieldA("fuzi");
// ゲッターを呼び出して、標準出力に出力
System.out.println(obj.getFieldA()); // 出力結果 -> fuzi
}
}
class MyClass {
// インスタンス変数
private String fieldA;
// セッター
public void setFieldA(String s) {
fieldA = s;
}
// ゲッター
public String getFieldA() {
return fieldA;
}
}
以下、解説をします。
private String fieldA;
MyClassクラスでprivateなインスタンス変数fieldAを定義します。
obj.setFieldA("fuzi");
Mainクラスでインスタンスを使って、セッターを呼び出し、実引数fuji
をセッターに渡します。
public void setFieldA(String s) {
fieldA = s;
これがセッターです。
MyClassクラスでpublicなメソッドsetFieldAを定義し、仮引数からfuji
を受け取り、
受け取ったfuji
を、インスタンス変数fieldAに代入します。
public String getFieldA() {
return fieldA;
}
これがゲッターです。
MyClassクラスでpublicなメソッドgetFieldAを定義し、戻り値としてfuji
が代入されたインスタンス変数fieldAを呼び出し元に返します。
System.out.println(obj.getFieldA());
Mainクラスでインスタンスを使って、ゲッターを呼び出し、戻り値のfuji
が代入されたインスタンス変数fieldAを受け取り、標準出力にfuji
を出力します。
Discussion