给定Java代码如下所示,则编译运行后,输出结果是( )。
public class Test {
static int a;
int b;
static int c;
public int aMethod() {
a++;
return a;
}
public int bMethod() {
b++;
return b;
}
public static int cMethod() {
c++;
return c;
}
public static void main(String args[]) {
Test test1 = new Test();
test1.aMethod();
System.out.println(test1.aMethod());
Test test2 = new Test();
test2.bMethod();
System.out.println(test2.bMethod());
Test test3 = new Test();
test3.cMethod();
System.out.println(test3.cMethod());
}
}
答案:2 2 2
解析:
1)静态变量a在类加载时初始化,仅初始化一次,int默认值0,所以a=2
Test test1 = newTest();
test1.aMethod();
System.out.println(test1.aMethod());
--------------------------------------------------------------------------------
2)实例对象test2创建时,初始化成员变量b,默认值0,两次调用方法均为对实例对象test2的成员变量b进行操作,b=2
Test test2 = newTest();
test2.bMethod();
System.out.println(test2.bMethod());
--------------------------------------------------------------------------------
3)静态变量c在类加载时初始化,仅初始化一次,int默认值0,所以c=2
Test test3 = newTest();
test3.cMethod();
System.out.println(test3.cMethod());