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(); System.out.println(testObject.getNext()); } }
答案:3
相信很多人都会做对。
我说说我当时为啥做出了2这个答案吧。
我知道i是静态变量,
我也知道 return i++;是先返回再++
我错的点在于我把
Test test=new Test(); Test testObject=new Test();我想这两个创建了两个对象test,testObject,地址是一定不同的,我就以为i也是独属于每个对象了,我以为test对象操作i对testObject对象里面的i没有影响呢,所以弄错了。
因为i是static的,是类属性,所以不管有多少对象,都共用的一个变量