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:
选什么,为什么?

解决方案 »

  1.   

    D. any class that extends Target 
    考的是public 的用法。
    作用范围
    public 就是在本包或其它包中都可以访问得到的,也可成功的被子类继承。
    所以 继承这个类的对象 就能修改这个变量名称如果有不足地方请楼下监督 指导
      

  2.   

    应该选A。
    因为既然是public访问修饰符,所以任何类都可以直接修改该类的实例变量。如以下代码:Target t = new Target();
    t.name = "target";
      

  3.   

    本题考访问修饰符
    应该选 C
    如题:
    package test; 
    class Target 

        public String name = "hello"; 

    Target类的访问修饰符未写,即default,表示同包共享;
    Target类中的name属性是public,即所有范围公共;但同时name又是default修饰的类中的属性,
    所以取交集,只要是同包(test),都可改变name的值。故应选 C楼上的各位都没注意到class的访问修饰符
      

  4.   

    修改一下 是C
    MyEclipse 测试结果
    同一个包可以改 
    不同的包内extends test
    也报错 提示 把 class的属性改为 public先在同一个包内继承然后再不同包内继承同一个包内不报错不同包报
    所以C正确