封装与访问修饰符 — 程序设计选择题
题目
某图书类 Book 将成员变量 price 声明为 private,且不提供任何公有存取方法。同学甲认为:只要加了 private 修饰就等于完成了封装。同学乙随后补写了 public double getPrice() 和带范围校验的 public void setPrice(double p)(仅当 0≤p≤500 时才赋值)。现在外部方法调用 b.setPrice(600); System.out.print(b.getPrice());(b 的 price 初值为 80.0)。下列说法正确的是:A. 输出 600.0,甲观点正确 B. 输出 80.0,甲观点错误,封装需成对提供读写方法并在写方法中校验数据 C. 编译错误,setPrice 不能为 public D. 输出 0.0,因为非法值被自动归零