我已经给了一段代码(类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'。 –