首页 > 试题广场 >

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

[单选题]
关于以下程序代码的说明正确的是()
 public class HasStatic {// 1
	private static int x = 100;// 2
	public static void main(String args[]) {// 3
		HasStatic hsl = new HasStatic();// 4
		hsl.x++;// 5
		HasStatic hs2 = new HasStatic();// 6
		hs2.x++;// 7
		hsl = new HasStatic();// 8
		hsl.x++;// 9
		HasStatic.x--;// 10
		System.out.println(" x=" + x);// 11
	}
}
  • 程序通过编译,输出结果为:x=102
  • 程序通过编译,输出结果为:x=103
  • 10行不能通过编译.因为x星私有静态变量
  • 5行不能通过编译.因为引用了私有静态变量
同一个类内,private变量可以访问,所以CD错。由于x是static的,存贮在类内,而不是对象内,所以++、--操作的是同一个变量。
发表于 2015-10-16 22:09:26 回复(5)
类变量既可以通过类来返回,也可以通过类的对象来访问。但通过类的对象来访问类变量时,实际不是访问该对象所拥有的变量,因为当系统创建该类的对象时,系统不会再为类变量分配内存,也不会再次对类变量进行初始化,也就是说,对象根本不拥有对应类的类变量,通过对象访问类变量只是一种假象,通过对象访问的依然是该类的类变量。 ————《疯狂java讲义》
发表于 2016-07-19 20:40:59 回复(12)
首先要明确,静态(static)是在程序加载的时候就一起写入内存,相当于是一直跟随着它自己这个类,这就可以理解为什么可以用 类名.变量名 来直接调用;接着是实例化对象(也就是new出来的对象),实例化是必须new了之后才会存在在该类中,也就是说若不是静态方法,你就必须先new,是new这个对象有该类的访问权限,因此new出来的对象名也可以调用静态产量了;最后这就是因为静态变量一开始就加载到内存中,因此++和--都是对同一变量值,所以最终通过编译,值为102
发表于 2017-03-08 23:49:37 回复(3)
package java4运算符;
 public class TestIncrement {// 1
    private static int x = 100;// 2
    public static void main(String args[]) {// 3
    TestIncrement hsl = new TestIncrement();// 4
        hsl.x++;// 5
        System.out.println(" x5=" + x);
        TestIncrement hs2 = new TestIncrement();// 6
        hs2.x++;// 7
        System.out.println(" x7=" + x);
        hsl = new TestIncrement();// 8
        hsl.x++;// 9
        System.out.println(" x9=" + x);
        TestIncrement.x--;// 10
        System.out.println(" x=" + x);// 11
    }
}
 x5=101
 x7=102
 x9=103
 x=102
发表于 2015-10-19 21:29:17 回复(5)
同一个类中可以访问私有变量,同时x是静态的,不同对象操作的都是同一个x
发表于 2016-11-07 20:51:57 回复(0)
这道题的重点在于x是一个静态变量,静态变量的特点就是能实现数据共享,拥有两种访问方式,一种是通过类名.变量名来访问,第二种就是创建该类的对象来访问。
发表于 2018-05-24 21:11:24 回复(0)
静态变量,被类拥有,所有对象都共享这个静态变量
发表于 2016-08-08 16:08:54 回复(0)
静态变量为类变量,只有在类加载的时候才进行初始化。
发表于 2015-11-05 17:35:42 回复(0)
同一个类重静态变量和静态方法,可以通过实例对象调用。也可以直接用类名调用,几次对x操作都是有效的。而x是共享的。
发表于 2016-09-27 23:55:03 回复(1)
静态变量分配在方法区,一个类的所有对象指向同一个方法区
发表于 2016-08-16 14:12:39 回复(0)
为什么可以用对象来调用静态变量?
发表于 2016-06-09 17:09:45 回复(1)
x是static 存在类中,对x自加和自减是对类操作的,与对象无关。
发表于 2018-06-14 10:04:18 回复(0)

选a,楼上已经写的很清楚

发表于 2015-10-19 14:18:16 回复(0)
最后是+,拼接,不是++
发表于 2020-06-11 22:45:17 回复(0)

102吧

发表于 2019-10-16 12:35:33 回复(0)
所有该类创建对象都共享静态变量
发表于 2019-09-30 00:18:52 回复(0)
很重要一点:static成员变量是存储在类中,而不是对象(实例化后的类)
编辑于 2019-05-11 13:29:49 回复(0)
静态变量可被本类对象,类名调用
发表于 2019-03-17 06:14:17 回复(0)
类变量可以无需实例化便可访问(ps:如果一个实例改掉了类变量的值,其他实例调用此类变量值时也是改动后的)
发表于 2019-01-24 10:37:35 回复(0)
这个题想多了就错了,static就是在类里边,不论创建的哪个对象操作,都是唯一的
发表于 2018-12-24 15:49:44 回复(0)