本帖最后由 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(); 注意:如果内部类中定义了静态成员,则该内部类也必须得是静态的 代码示例: - class waibu{
- private int x=9;
- class inner{
- public void show(){
- System.out.println(waibu.this.x);
- }
- }
- public void method(){
- inner i=new inner();
- i.show();
- }
复制代码1.匿名内部类其实就是对内部类的一种简写格式 2.定义内部类的前提: 内部类必须是继承或实现了一个接口 3.匿名内部类的格式:new 父类或接口(){定义子类的内容} 4.其实匿名内部类就是一个子类对象 5.匿名内部类中定义的方法最好不要超过3个(主要是为了使用起来简单) Java代码 - class Outer{
- private final int x=12;
- new AbsDemo(){
- public void show(){
- System.out.println("show:"+x);
- }
- }
复制代码 |