archive

[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() + "日");

}

}`