Java メソッドで変数を宣言した場合、その変数は、宣言されたメソッドから呼び出されたメソッドからもアクセスできますか?
以下を試してみると、 function2 は変数 variable1 を認識しません。これは事実ですか?
public static void main(String[], args)
{
int variable1
function2();
}
以下を試してみると、 function2 は変数 variable1 を認識しません。これは事実ですか?
はい。これはローカル変数であり、宣言されているメソッドに対してローカルです。そのメソッドは、同じスレッド (異なるスタック レベル) 内で、複数の異なるスレッドで複数回実行される可能性があります。メソッドの呼び出しごとに個別の変数があります。
Java チュートリアルの変数セクションを確認してください。
function2 にパラメータとして渡さないと認識されません。
例えば
int variable1;
function2(variable1);
変数をフィールドにするか、関数の引数を介して渡す必要があります。
public static void main(String[] args) {
int variable = 0;
function2(variable);
}
public static void function2(int argument) {
//argument is = variable
}
/* or ... */
private static int variable;
public static void main(String[] args) {
variable = 0;
function2();
}
public static void function2() {
//variable is usable
}