🎯

【Java】クラス解説26・thisの使い方1

2024/01/25に公開

thisの使い方1

インスタンス変数とローカル変数(変数や仮引数など)が同名の時に、インスタンス変数にthisを付けることにより、インスタンス変数を明示的に区別します。

「thisの使い方1」のコード例

public class Main {
    public static void main(String... args) {
        // インスタンス生成(コンストラクタ呼び出し)
        MyClass mc = new MyClass(24);
        // メソッド呼び出し
        mc.setValue(24);
        System.out.println(mc.getValue());
    }
}

class MyClass {
    // このvalueはインスタンス変数
    private int value;
    
    // コンストラクタ
    // このvalueは仮引数でありローカル変数
    public MyClass(int value) {
        // 左辺のvalueはインスタンス変数、右辺のvalueは変数でありローカル変数
        this.value = value;
    }
    
    // セッター(メソッド)
    // このvalueは仮引数でありローカル変数
    public void setValue(int value) {
        // 左辺のvalueはインスタンス変数、右辺のvalueは変数でありローカル変数
        this.value = value;
    }
    
    // ゲッター(メソッド)
    public int getValue() {
        // このvalueはインスタンス変数
        return this.value;
    }
}

コード例の解説

public class Main {
    public static void main(String... args) {
        MyClass mc = new MyClass(24);
        mc.setValue(24);
        System.out.println(mc.getValue());
    }
}

Mainクラスで、

  1. MyClassのインスタンスを生成し変数mcに代入し、実引数で数値の24を渡すコンストラクタを呼び出します。
  2. MyClassのインスタンスから、実引数で数値の24を渡すセッターを呼び出します。
  3. MyClassのインスタンスから、ゲッターを呼び出し返り値を標準出力に出力します。

以下、MyClassで、

private int value;
  1. int型のインスタンス変数valueを宣言します。

public MyClass(int value) {
    this.value = value;
}
  1. 24を受け取る仮引数valueのコンストラクタを定義します。
  2. 左辺のインスタンス変数valueに、24が渡された変数valueを代入します。

public void setValue(int value) {
    this.value = value;
}
  1. 24を受け取る仮引数valueのセッターを定義します。
  2. 左辺のインスタンス変数valueに、24が渡された変数valueを代入します。

public int getValue() {
    return this.value;
}
  1. ゲッターを定義します。
  2. 戻り値としてインスタンス変数valueを返します。

Discussion