在以下Java代码片段中,若类 `MyClass` 实例化了多个对象,关于实例变量 `instanceVar` 和类变量 `classVar` 的生命周期和访问方式,哪一项描述是准确的? ```java public class MyClass { int instanceVar; static int classVar; public static void main(String[] args) { MyClass obj1 = new MyClass(); MyClass obj2 = new MyClass(); obj1.instanceVar = 10; MyClass.classVar = 20; obj2.classVar = 30; // 赋值行为会影响所有实例的classVar } } ```

答案解析

选项A错误, `instanceVar` 的生命周期与每个实例对象的生命周期相同,而不是类的生命周期;`classVar`的生命周期和类的生命周期相同。选项C错误,`classVar` 是静态变量,被所有实例共享,`obj2.classVar = 30;` 会覆盖 `MyClass.classVar = 20;` 的赋值,最终值为30。选项D错误,`classVar` 的生命周期和类的生命周期相同,并且被所有实例共享。选项B正确,`instanceVar` 的生命周期确实与每个实例对象的生命周期相关联;而 `classVar` 作为静态变量,其生命周期与类的生命周期一致。由于 `classVar` 是静态变量,对 `obj2.classVar` 的修改会影响所有实例的 `classVar` 值,所以最终值为30。
正确答案:B
随机推荐
开始刷题