我已經給了一段代碼(類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類文件:
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++;
}
}
我到達:
a: 1
b: 1
c: 3
注我還可以選擇'undefined'作爲答案? 那麼它會是1,1,未定義,因爲c不存在於代碼塊之外?
的問題是:
研究下面的代碼,然後從下面的下拉列表是大約的,b和c的值正確的選項方法MQ2被調用一次後一個新創建的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',正如Adrian所說,在'mQ2()'運行後沒有'c'。 –