黑马程序员技术交流社区

标题: 内部类总结 [打印本页]

作者: huanxiang0220    时间: 2015-2-23 02:15
标题: 内部类总结
本帖最后由 huanxiang0220 于 2015-2-23 03:32 编辑

内部内的定义原则
当描述事物时.如果事物内部还有事物,这时就需要定义内部类
因为内部事物需要使用到外部事物中的内容
内部类的访问规则:
1.内部部类可以直接访问外部类中的成员,哪怕是私有的
内部内之所以可以访问外部成员,是因为内部类持有对外部类的引用,只是用省月了“外部类.this关键字
2.外部类如果要访问内部类中的成员,必须通过创建内部类的对象来访问
一点总结:当内部类中的内容描述不需要让外部类访问到时,可将其定义为私有的,然后再给它提供一种外部访问方式即可
访问格式
  1.当内部类定义在外部类的成员位置上,而非私有化时,其他外部类可以直接建立该内部的对象
格式:
外部类.内部类  变量=外部类对象.内部类对象
outer.inner n=new outer().new inner();
  2.当内部类在成员位置上,就可以被成员修饰符所修饰
比如:private,将内部类在外部类中进行封装
     static,将内部类进行静态化后,该内部类只能访问所在外部类的静态成员,访问出现局部性
  3,在其他外部类访问内部类的非静态成员:new outer.inner().function();
其他外部类访问内部类的静态成员: outer.inner.function();
注意:如果内部类中定义了静态成员,则该内部类也必须得是静态的
代码示例:
  1. class waibu{  
  2.         private int x=9;  
  3.         class inner{
  4.               public void show(){  
  5.                     System.out.println(waibu.this.x);  
  6.               }  
  7.          }  
  8.          public void method(){
  9.                 inner i=new inner();  
  10.                 i.show();  
  11.          }         
复制代码
1.匿名内部类其实就是对内部类的一种简写格式
  2.定义内部类的前提:
内部类必须是继承或实现了一个接口
  3.匿名内部类的格式:new 父类或接口(){定义子类的内容}
  4.其实匿名内部类就是一个子类对象
  5.匿名内部类中定义的方法最好不要超过3个(主要是为了使用起来简单)
Java代码
  1. class Outer{  
  2.          private final int x=12;  
  3.          new AbsDemo(){  
  4.          public void show(){  
  5.               System.out.println("show:"+x);  
  6.          }  
  7.    }
复制代码





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