私はコード(クラスQuestionTwo)を与えられました。 クラスQ2の新しく作成されたオブジェクトに対してメソッドmQ2が呼び出された後、a、b、およびcの値を指定するように求められます。正しく呼び出されましたか?
マイmain.javaファイル
package openuniversity;
public class Main
{
public static void main(String[] args)
{
QuestionTwo qt = new QuestionTwo();
qt.mQ2();
}
}
マイQuestionTwo.javaクラスファイル:私はこともでき
a: 1
b: 1
c: 3
注:私が到着した
package openuniversity;
public class QuestionTwo
{
int a;
int b = 1;
public void mQ2()
{
{
int c;
int a = 2;
c = a;
}
{
int c;
int a;
c = 3;
a = 4;
}
a++;
}
}
答えとして「未定義」を選択しますか? cはコードブロックの外側に存在しないので、それは1、1、未定義でしょうか?
質問:その後、
研究次のコードとメソッドMQ2を一度に起動された後、a、b及びcの値について正しいの下のドロップダウンリストからオプションを選択クラスQ2の新しく作成されたオブジェクトa、b、cに対して選択した回答は、それぞれ異なる場合があります。
public class Q2
{
int a;
int b = 1;
public void mQ2()
{
{
int c;
int a = 2;
c = a;
}
{
int c;
int a;
c = 3;
a = 4;
System.out.println("c: " + c); //correct place?
}
a++;
}
System.out.println("a: " + a + "b: " + b); // correct place?
}
どのように到着しましたか?クレームを確認/反証する方法について考えましたか? –
あなたの質問は本当に私にとって意味をなさない。ここにはローカル変数とクラス変数の両方があります。関数が終了するとローカル変数は効果的に存在しなくなるので、実際にはIMOという値はありません。 –
ブロック内の変数( '{...} ')を宣言すると、そのブロックが完了した後に変数が存在しなくなります。したがって、 'a'と' c'という名前の複数の異なる変数があり、 'mQ2()'の実行後に 'c'はありません。 –