关于以下程序代码的说明正确的是( )

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。


results matching ""

    No results matching ""