以下java程序输出什么?
有如下一段程序:
public class Test{
private static int i=1;
public int getNext(){
return i++;
}
public static void main(String[] args) {
Test test= new Test();
Test testObject = new Test();
test.getNext();
testObject.getNext();
test.getNext();
System.out.println(testObject.getNext());
}
}
请问最后打印的结果是什么?
A)2
B)3
C)4
D)5
考点:考察求职者对static的理解 出现频率:★★★★★
【面试题分析】对于使用 static关键字修饰的变量来说,该变量是属于类本身的,不属于特定的某个类对象。因此new出的两个对象test和 testObject是对同一个变量i进行的操作。对于i++来说,是先引用再自加;对于++i来说是先自加,再引用。程序段中调用了4次 getNext ()方法,根据先引用 再自加的原则,最后打印出4。
参考答案是:C
往期面试题:https://mp.weixin.qq.com/mp/homepage?__biz=MzA5MTMyNTI0Nw==&hid=14&sn=c26c576d701999f1dea1ff4d9c6ccb2a#wechat_redirect