关于以下程序代码的说明正确的是( )
1.class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x--;
11. System.out.println("x="+x);
12. }
13.}
A.5行不能通过编译,因为引用了私有静态变量
B.10行不能通过编译,因为x是私有静态变量
C.程序通过编译,输出结果为:x=103
D.程序通过编译,输出结果为:x=102
参考解答
D
static 修饰的是类变量,归全类共有,所有对象都可以访问并修改该变量,同时也可以通过类名.静态变量名
直接调用。
上述代码通过hs1对象,hs2对象和HasStatic类访问的都是同一个静态变量,经历了3次自增、1次自减,因此结果是102。