内部类

1.创建内部类#

直接在另一个类内部实现一个类,这个类与外部类是相互独立的,并且可以随意的调用外部类的成员方法和成员变量。

2.使用.this与.new#

    public class Inner {
        public Pacle9 outer() {
            return Pacle9.this;
            //使用this返回外部类对象
        }

        public void f(){
            System.out.println("fi");
        }
    }

    public Inner inner() {
        return new Inner();
    }
    public static void main(String args[]){
        Pacle9 p = new Pacle9();
        Pacle9.Inner i = p.inner();
        Pacle9.Inner i1 = p.new Inner();
        //使用.new关键字创建内部类对象
        i1.f();
        i.outer().f();
    }
}

3.方法和作用域内内部类#

内部类可以定义在方法和作用域内如"{}"内或者"if(exp){}"内。

4.匿名内部类#

public class Pacle10 {
    public Contents contents(final float dest, final String cont) {
        //内部类中使用常量
        //返回一个匿名内部类
        return new Contents() {
            private int cost;
            private String c = cont;
            {
                //相当于构造函数
                cost = Math.round(dest);
                if(cost > 100)
                    System.out.println("ok!");
            }
            @Override
            public int value() {
                return cost;
            }
        };
    }
    public static void main(String args[]){
        Pacle10 p = new Pacle10();
        Contents c = p.contents((float) 109.5, "hehe");
        System.out.print(c.value());
    }
}

5.嵌套类#

在内部类之前加static关键字,则为嵌套内部类,与内部类区别为使用.this不能获得外部类的引用。内部类在构建时会自动的与外部类关联,嵌套类没有这种关联机制。

6.内部类的意义#

实现了多继承。通过在一个类内部实现多个继承自不同抽象类的类,即可以实现这个类的多继承。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天整理一下内部类,其中包含了内部类的特殊形式,对比普通类有什么区别和作用,内部类和外围类之间的联系,内部类的扩展...
    _小二_阅读 646评论 0 3
  • Java 内部类 分四种:成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类: 即作为外部类的一个成...
    ikaroskun阅读 1,252评论 0 13
  • 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。 如果想从外部类...
    Lemon_Home阅读 226评论 0 0
  • “也没看那些信奉努力就能成功的人过的有多好啊?” 这是2014年我刚刚自由职业的时候,我大学同学说过的一句话。一直...
    小亮老师1980阅读 465评论 0 0
  • 自由书写-第1篇 我在耶路撒冷的哭墙:感受到一种力量,泪如洪流;我在黄河以南:触目蚌壳龙虎图、遥想伏羲观天象,凝视...
    梵菂阅读 237评论 0 4