package test; class Target
{
public String name = "hello";
}
What can directly access and change the value of the variable name?
A. any class
B. only the Target class
C. any class in the test package
D. any class that extends Target
Answer:
选什么,为什么?
{
public String name = "hello";
}
What can directly access and change the value of the variable name?
A. any class
B. only the Target class
C. any class in the test package
D. any class that extends Target
Answer:
选什么,为什么?
考的是public 的用法。
作用范围
public 就是在本包或其它包中都可以访问得到的,也可成功的被子类继承。
所以 继承这个类的对象 就能修改这个变量名称如果有不足地方请楼下监督 指导
因为既然是public访问修饰符,所以任何类都可以直接修改该类的实例变量。如以下代码:Target t = new Target();
t.name = "target";
应该选 C
如题:
package test;
class Target
{
public String name = "hello";
}
Target类的访问修饰符未写,即default,表示同包共享;
Target类中的name属性是public,即所有范围公共;但同时name又是default修饰的类中的属性,
所以取交集,只要是同包(test),都可改变name的值。故应选 C楼上的各位都没注意到class的访问修饰符
MyEclipse 测试结果
同一个包可以改
不同的包内extends test
也报错 提示 把 class的属性改为 public先在同一个包内继承然后再不同包内继承同一个包内不报错不同包报
所以C正确