考虑以下Java代码片段,其中`Student`类的实例成员变量`name`和`age`未进行任何访问控制修饰符声明。在`Example03`的`main`方法中,通过直接赋值的方式修改了`stu`对象的`name`为"张三",`age`为-18。以下关于此代码运行结果的描述,哪一项最准确?

答案解析

本题考察的是Java中默认访问控制权限以及对象成员的访问方式。选项A错误,在Java中,如果类成员变量没有使用任何访问修饰符(如`public`, `private`, `protected`)修饰,那么它们具有默认的包访问权限(package-private),这意味着在同一个包内的其他类中可以直接访问这些成员。`Example03`和`Student`位于同一个包内,因此可以直接访问。选项B错误,虽然年龄为负数在实际逻辑中可能不合理,但Java语法层面允许这样做,不会抛出异常。选项D错误,程序的输出是确定的,不受JVM实现影响,代码的运行结果是确定的,会输出对象成员的当前值。只有选项C正确,代码可以成功编译并运行,因为直接访问`name`和`age`是合法的,且`read()`方法会输出赋给成员变量的相应值。
正确答案:C
随机推荐
开始刷题