黑马程序员技术交流社区

标题: 个人总结————各种类的特点总结 [打印本页]

作者: 赵永康    时间: 2012-9-21 23:34
标题: 个人总结————各种类的特点总结
鉴于程序中经常会看到类中套类的情况,我们经常在编写程序的时候,不会定义内部类的时候,总会报错,但是还不知道程序错在哪里!!所以,我结合视频,结合网上,总结了一下内部类的常见特点,希望对大家--特别是初学者有帮助,因为我也是从0基础一点点自学的,直到其中的艰辛!因为,是本人自己总结的,肯定有错误之处,希望大家指出,共同进步!!


类的分类
成员类:定义在成员位置上的类
   -----分为  非静态成员内部类   静态成员内部类
class Outer
{
        class Inner
        {
                System.out.println(x);
        }
        public   static void main(String[] args)
        {

        }
}
在这个类中Inner定义在成员位置上,因为内部类带有外部类的引用,所以变量x定在
哪里都可以用
因为定义在成员位置上,所有可以被static  和private修饰
被static修饰的时候,Inner内部变量就必须是静态的 他所要访问的成员变量也就必须是静态的
假如Inner里面有静态成员时候,那么Inner也就必须是静态的
所以,当有判断题说一个类能被static修饰吗??我们的答案就是能,就是当定义在成员位置上的时候!!!


局部内部类
class Outer
{
        public   static void main(String[] args)
        {
                final int x;
        }
        void show()
        {      
                class Inner
                {

                }
        }
}
在这个例子中,Inner是局部类所以就不能被成员修饰符所修饰 static private
Inner想要访问x,此时X就必须被定义成final 才能访问到


匿名内部类
匿名内部类的创建前提条件就是他必须实现一个接口或者类
  用接口或者类的名字进行

作者: 张忠豹    时间: 2012-9-22 01:27
顶一个,楼主给力啊
作者: 宫明星    时间: 2012-9-22 01:33
顶一下,感谢分享。
作者: 张文建    时间: 2012-9-22 11:54
楼主问你个问题:局部内部类要访问外部类的局部变量,为什么要用final修饰才能访问到这个变量????
作者: 张文建    时间: 2012-9-22 11:54
楼主总结得不错,呵呵
作者: 张文建    时间: 2012-9-22 11:54
楼主总结得不错,呵呵
作者: 赵永康    时间: 2012-9-22 15:04
张文建 发表于 2012-9-22 11:54
楼主问你个问题:局部内部类要访问外部类的局部变量,为什么要用final修饰才能访问到这个变量???? ...

因为局部内部类定义在方法内部,当方法执行完毕的时候,就会释放其资源,也就是释放了外部变量,显然外部变量的生命周期是整个程序,并不是随着内部类的结束而结束。所以定义为flanai就是为了让其在整个程序中都能有效
作者: 明光照    时间: 2012-9-22 15:34
顶一下。
作者: 张文建    时间: 2012-9-23 10:04
赵永康 发表于 2012-9-22 15:04
因为局部内部类定义在方法内部,当方法执行完毕的时候,就会释放其资源,也就是释放了外部变量,显然外部 ...

呵呵,原来是这样,多谢楼主。。。。




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