美文网首页Monkey Java
课程7.2之内部类和匿名内部类

课程7.2之内部类和匿名内部类

作者: GitOPEN | 来源:发表于2015-08-05 14:04 被阅读69次

    转发请注明出处:
    安卓猴的博客(http://sunjiajia.com)


    本节课程将学习以下内容:

    • 什么是内部类
    • 内部类的使用方法
    • 匿名内部类的使用方法

    什么是内部类

    含义:

    一个类定义在另一个类内部。

    例子1:

    1.新建一个名为A.java的源文件:

    class A {
    
        int i;
    
        // B类就是内部类
        class B {
            int j;
            int funB(){
                // 内部类B可以使用外部类A的成员变量和成员方法
                int result = i + j;
                return result;
            }
        }
    }
    
    

    注意:

    在编译A.java源文件后,会生成两个class文件,即A.class和A$B.class。

    内部类的使用方法

    • 要生成一个内部类对象,首先要有一个外部类对象。

    例子2:

    1.新建一个名为Demo01.java的源文件:

    
    class Demo01 {
        public static void main(String[] args) {
            // 生成外部类的对象
            A a = new A();
    
            // 生成内部类的对象
            A.B b = new A().new B();
    
            a.i= 3;
            b.j = 1;
    
            int result = b.funB();
            System.out.println(result);
    
        }
    }
    
    

    匿名内部类

    • 首先是一个内部类
    • 其次它没有名字

    例子3:

    1.新建一个名为C.java的源文件:

    
    interface C {
        public void doSomething();
    }
    
    

    2.新建一个名为D.java的源文件:

    class D {
        public void fun(C c){
            System.out.println("D类的fun函数");
            c.doSomething();
        }
    }
    
    

    3.新建一个名为Demo02.java的源文件:

    
    class Demo02 {
        public static void main(String[] args) {
            D d = new D();
            // fun括号中就是匿名内部类
            d.fun(new C(){
                public void doSomething() {
                    System.out.println("匿名内部类");
                }
            });
        }
    }
    
    

    相关文章

      网友评论

      本文标题:课程7.2之内部类和匿名内部类

      本文链接:https://www.haomeiwen.com/subject/cxavqttx.html