A.一旦一个静态变量被分配,它就不允许改变
B.一个静态变量在一个方法中创建,它在被调用的时候值保持不变
C.在任意多个类的实例中,一个静态变量的实例只存在一个
D.一个静态的标识符只能被应用于primitive value
我认为只有C正确
public class Demo {
public static int num=3;
}
public class Text {
public static void main(String[] args) {
System.out.println("原来的值:"+Demo.num);
Demo.num=10;
System.out.println("改变后的值:"+Demo.num);
}
}结果:
原来的值:3
改变后的值:10
从结果可以判断出:A和D不正确 静态变量的值是可以被改变的,不能由private来修饰,否则不能有类名.静态变量 调用 如果是final static 声明的变量的值不可以被改变。
public static int getStatic(){
static int num=5;
return num;
}一个方法中不能声明静态的变量,否则编译失败。所以B错误
只要是类加载后,静态变量就在内存中存储,只要是本类调用,就只有这么一个值,其他的类不能调用,
public class Demo {
public static int num=5;
public static int getNum() {
return num;
}
public static void setNum(int num) {
Demo.num = num;
}
}
public class Text {
public static void main(String[] args) {
Demo d1=new Demo();
System.out.println("d1--->"+d1.getNum());
d1.setNum(20);//改变静态变量
Demo d2=new Demo();
System.out.println("d2--->"+d2.getNum());
Demo d3=new Demo();
System.out.println("d3--->"+d3.getNum());
}
}
结果:
d1--->5
d2--->20
d3--->20
从结果中可以判断出:C正确。只要其中一个类的对象改变了静态变量的值,其他的对象的静态变量的值也跟着改变,就说明是同一个变量。
希望我的解释对你有帮助!
|