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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 少说话,多做事 中级黑马   /  2015-5-2 01:05  /  572 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1、成员内部类
               A、其他类如何使用该内部类?
                    外部类名.内部类名 变量名 = new 外部类构造方法.new 内部类构造方法;
                     private:一般就是为了安全
                     static:一般就是为了方便调用
               B、注意问题
                     如果一个内部类含有静态方法,那么该内部类必须被静态修饰
                     如果一个类被定义为静态时,该类中可以没有静态方法
          2、局部内部类
               定义在方法中的类

               结论
                     局部内部类访问局部变量,该局部变量必须被final修饰,因为被final 修饰就变成常量,在方法区中,他的生命周期延长了

2 个回复

倒序浏览
楼主,关于内部类,我有几个问题
首先:如果用private定义了内部类,其他的类如何使用该内部类?如果可以使用,格式又是什么样的呢?
然后:用static修饰内部类是为了方便调用,那么调用的方法格式又是怎样的呢?
最后:为什么一个含有静态方法的内部类,必须要被静态修饰?
回复 使用道具 举报
Dylon 发表于 2015-5-2 10:27
楼主,关于内部类,我有几个问题
首先:如果用private定义了内部类,其他的类如何使用该内部类?如果可以使 ...

楼主,关于内部类,我有几个问题
首先:如果用private定义了内部类,其他的类如何使用该内部类?如果可以使用,格式又是什么样的呢?
然后:用static修饰内部类是为了方便调用,那么调用的方法格式又是怎样的呢?
最后:为什么一个含有静态方法的内部类,必须要被静态修饰?


第一点:私有的意思是指其他类不能直接访问,但是在外部类中有效,跟属性私有一个意思,都是为了安全
第二点:调用内部类中的静态方法:外部类名.内部类名.方法名()
            调用内部类非静态方法:new 外部类名.内部类名().方法名()
第三点:因为内部类是外部类的成员,又因为静态随着类的加载而加载,如果内部类不是静态而内部类中的方法是静态的话,就会出现内部类的静态方法随着外部类加载而加载,而内部类作为外部类的非静态成员却没有加载,这就相当于儿子都有了而他妈还没出生,不矛盾嘛
总之看一点,你把内部类当做外部类的一个成员变量看就行了,不要老想着他是一个类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马