[Java / setter] セッターとは

セッターについて整理。

セッターについて理解にするには、まずはゲッターの理解を整理しておくとわかりやすくなるので、まずはゲッターからみていく。


ゲッターの復習

アクセス修飾子、privateで設定されたフィールド変数を、別クラスからでも呼び出せるようにできるのがゲッターメソッドの役割。

例えば下記の例でみる。



Mountainクラスで設定したprivateのフィールド変数mountainNameを、Mainクラスで呼び出すにはどうしたら良いか?

この例では、

  1. Mountainクラスにゲッターのメソッドを作る
  2. Mainクラスでゲッターを呼び出すことで、privateの変数にセットしたワード「焼岳」を取り出す。

ということをしている。

詳しくはこちらに整理した。


セッターとは何か?

ゲッターを使って、privateで設定したフィールド変数の値を別クラスで呼び出せたわけだが、ではこの値を書き換えるにはどうしたら良いか?

ここでセッターが登場する。

セッターを使うことによって、privateのフィールド変数の値を別クラスからでも書き換えることができる。


セッターの書き方のルール

セッターの書き方にも、ゲッターと同じくルールがある。よく一緒に使われるゲッターと一緒に表記。

ゲッター

//メソッド名につけるフィールド変数名の先頭は大文字。 
public 値の型 getフィールド変数名( ) {
   return this. フィールド; 
}

// example
public String getMountainName() {
       return this.mountainName;
    }


セッター

//メソッド名につけるフィールド変数名は書き換えたい変数名を入れる。 
public void setフィールド変数名( ) {
  this.フィールド変数名 = フィールド変数名;
}

// example
public void setMountainName() {
   this.mountainName = mountainName;
}


セッターでprivateのフィールド変数の値を書き換える

では実際に例を使ってみていく。

下記のコードを実行してみる。

class Mountain {
    //フィールド変数
    private String mountainName = "焼岳";
    private int mountainStay = 1;
    
    //ゲッターメソッドの定義
    public String getMountainName() {
       return this.mountainName;
    }
    public int getMountainStay(){
        return this.mountainStay; 
    }
    
     //セッターメソッドの定義
    public void setMountainName(String mountainName){
        this.mountainName = mountainName;
    }
    public void setMountainStay(int mountainStay){
        this.mountainStay = mountainStay;
    }
}
 
public class Main {
    public static void main(String[] args) {
        //インスタンス生成
        Mountain mountain1 = new Mountain();
        
        //元々の情報取得
         System.out.println("元々の情報を取得します。");
         System.out.println("山の名前:"+ mountain1.getMountainName());
         System.out.println("登山にかかる日数:"+ mountain1.getMountainStay() + "日");
         
        //情報をセッターを使って書き換え
        mountain1.setMountainName("五竜岳");
        mountain1.setMountainStay(2);
        
        //変更後の情報取得
        System.out.println("変更後の情報を取得します。");
        System.out.println("山の名前:"+ mountain1.getMountainName());
        System.out.println("登山にかかる日数:"+ mountain1.getMountainStay() + "日");
    }
}


下記はコンソールの結果

//コンソールの結果
元々の情報を取得します。
山の名前:焼岳
登山にかかる日数:1日
変更後の情報を取得します。
山の名前:五竜岳
登山にかかる日数:2日



セッターメソッドをMountainクラスで定義し、入れて欲しい情報の型を()の中で指定する。

すると、Mainクラスの方で、セッターメソッドを通して、private変数の値を上書きすることができる。

上書きした後、またゲッターで呼び出すことで、上書きした値を出力することができる。


全体像を把握する

下記にJavaやwebアプリケーションについての記事をまとめた。


[st-card myclass=”” id=3431 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]


コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。


[st-card myclass=”” id=4587 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]



使ったコード

class Mountain {
    
    //フィールド変数
    private String mountainName = "焼岳";
    private int mountainStay = 1;
    
    
    //ゲッターメソッドの定義
    public String getMountainName() {
       return this.mountainName;
    }
    public int getMountainStay(){
        return this.mountainStay; 
    }
    
     //セッターメソッドの定義
    public void setMountainName(String mountainName){
        this.mountainName = mountainName;
    }
    public void setMountainStay(int mountainStay){
        this.mountainStay = mountainStay;
    }
}
 
public class Main {
    public static void main(String[] args) {
        //インスタンス生成
        Mountain mountain1 = new Mountain();
        
        //元々の情報取得
         System.out.println("元々の情報を取得します。");
         System.out.println("山の名前:"+ mountain1.getMountainName());
         System.out.println("登山にかかる日数:"+ mountain1.getMountainStay() + "日");
         
        //情報をセッターを使って書き換え
        mountain1.setMountainName("五竜岳");
        mountain1.setMountainStay(2);
        
        //変更後の情報取得
        System.out.println("変更後の情報を取得します。");
        System.out.println("山の名前:"+ mountain1.getMountainName());
        System.out.println("登山にかかる日数:"+ mountain1.getMountainStay() + "日");
        
    }
}