黑马程序员技术交流社区

标题: 选择题,有点绕,不要晕哈。 [打印本页]

作者: 王勇文    时间: 2013-1-21 13:18
标题: 选择题,有点绕,不要晕哈。
  1. public class OuterClass {
  2. private double d1 = 1.0;
  3. //insert code here
  4. }
  5. 把下列答案存放在指定code位置上,哪个答案是正确的?
  6. A. class InnerOne{
  7. public static double methoda() {return d1;}
  8. }

  9. B. public class InnerOne{
  10. static double methoda() {return d1;}
  11. }
  12. C. private class InnerOne{
  13. double methoda() {return d1;}
  14. }
  15. D. static class InnerOne{
  16. protected double methoda() {return d1;}
  17. }
复制代码
被这题绕得有点晕了。

作者: 柴乔军    时间: 2013-1-21 13:20
当内部类在成员位置上,就可以被成员修饰符所修饰。
比如,private :将内部类在外部类中进行封装。
        static :内部类可以被静态修饰,就具备了静态的特性。当内部类被
                静态修饰后,只能直接访问外部类中的静态成员,出现了访问局限。
                在外部其他类中如何访问静态内部类的非静态成员:
                new Outer.Inner().function();
                在外部其他类中如何访问静态内部类中的静态成员:
                Outer.Inner.function()

                注意:当内部类中定义了静态成员,该内部类必须是静态的。
                        当外部类中的静态方法访问内部类时,内部类也必须是
                        静态的。
C是正确的
作者: 黑马刘杰    时间: 2013-1-21 13:22
我选C。。。
作者: 柴乔军    时间: 2013-1-21 13:24
楼主哪个选项不懂可以继续问
作者: 焦健    时间: 2013-1-21 13:29
C是正确的。其他的都是静态访问非静态成员。。编译失败。。
作者: 金鑫    时间: 2013-1-21 13:37
记得老毕视频中说过,静态只能访问静态。记住这句话,这道题还是很简单的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2