【Java SE17 Silver 模擬試験】B-28

Java SE17 Silver 模擬試験
Java SE17 Silver 模擬試験

問題

次のコードでインスタンス変数a, t, c, g の値を変更するメソッドはどれですか。

public class Main {
	int a;
	int t;
	int c;
	int g;

	void setA(int a) {
		a = a;
	}

	void setT() {
		this.t = t;
	}

	int setC() {
		return c;
	}

	int setG(int g) {
		g = g;
		return g;
	}

	void setAll(int x) {
		a = t = this.c = g = setG(x);
	}
}

選択肢

A)値を変更するメソッドはない

B)setT メソッド

C)setG メソッド

D)setC メソッド

E)setAll メソッド

F)setA メソッド

解答

A)値を変更するメソッドはない

B)setT メソッド

C)setG メソッド

D)setC メソッド

E)setAll メソッド

F)setA メソッド

解説

setA(int a)

void setA(int a) {
    a = a;
}
  • このメソッドは引数 a を受け取りますが、インスタンス変数 a ではなく、ローカル変数に代入しているため、インスタンス変数 a の値は変更されません。

setT()

void setT() {
    this.t = t;
}
  • this.t に自身の値 t を代入しているだけで、値が変更されません。このメソッドも効果がありません。

setC()

int setC() {
    return c;
}
  • このメソッドは c の値を返すだけで、変更することはありません。

setG(int g)

int setG(int g) {
    g = g;
    return g;
}
  • 引数 g をローカルで受け取り、代入しているだけで、インスタンス変数 g の値は変更されません。

etAll(int x)

void setAll(int x) {
    a = t = this.c = g = setG(x);
}
  • このメソッドは setG(x) の戻り値を使って、a, t, c, g の値を変更します。setG(x)x を返すため、a, t, c, g すべてが x に設定されます。

インスタンス変数の値を変更するメソッドは E)setAll メソッド のみです。

前の問題へ SE17_B-27

次の問題へ SE17_B-29

対象資格:Java SE17 認定資格