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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huanxiang0220 中级黑马   /  2015-2-23 02:15  /  599 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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.    }
复制代码

点评

不错,加油~~  发表于 2015-2-23 09:57

1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马