A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王勇文 中级黑马   /  2013-1-21 13:18  /  1559 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码
被这题绕得有点晕了。

评分

参与人数 1技术分 +1 收起 理由
金鑫 + 1

查看全部评分

5 个回复

倒序浏览
当内部类在成员位置上,就可以被成员修饰符所修饰。
比如,private :将内部类在外部类中进行封装。
        static :内部类可以被静态修饰,就具备了静态的特性。当内部类被
                静态修饰后,只能直接访问外部类中的静态成员,出现了访问局限。
                在外部其他类中如何访问静态内部类的非静态成员:
                new Outer.Inner().function();
                在外部其他类中如何访问静态内部类中的静态成员:
                Outer.Inner.function()

                注意:当内部类中定义了静态成员,该内部类必须是静态的。
                        当外部类中的静态方法访问内部类时,内部类也必须是
                        静态的。
C是正确的

评分

参与人数 1技术分 +1 收起 理由
金鑫 + 1

查看全部评分

回复 使用道具 举报
我选C。。。
回复 使用道具 举报
楼主哪个选项不懂可以继续问
回复 使用道具 举报
C是正确的。其他的都是静态访问非静态成员。。编译失败。。

点评

原来是这样.  发表于 2013-1-21 13:41
回复 使用道具 举报
记得老毕视频中说过,静态只能访问静态。记住这句话,这道题还是很简单的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马