zoukankan      html  css  js  c++  java
  • 19_内部类 匿名内部类

    内部类

        在描述事物时,若一个事物内部同时还包含其他事物时,就可以使用内部类这种结构。
      什么是内部类:
        将一个类A定义在另一个类B里面,里面的类A就被称为内部类。类B则成为外部类。

     成员内部类:

      成员内部类:定义在类中方法外的类

      格式:

       public class OuterClassName{
                            //.............
                            calss InnerClassName{
                            //........
                            }
                            //...........
                        }

    举例:

                如:汽车事物和引擎事物    引擎在汽车事物的内部
                        public class Car{//   Car就是外部类
    
                            class Engine{//   Engine就是内部类
    
                            }
                            //  成员方法   move()  方法外
                            public void move(){
                                    System.out.println("汽车在运动!");
                            }
    
                        }

    创建内部类的对象的格式:

      外部类名.内部类   对象名  =   new  外部类().new  内部类型();
            //首先创建外部类对象
            Xxxx yyy =new Xxxx();
            //创建内部类对象    (上边的xxx = new 外部类() )
            // 外部类名.内部类   对象名  =   new  外部类().new  内部类型();
            Xxxx.Heart heart = Xxxx.new Heart();

    备注:

    内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件

      但是.class文件的名称是:
        外部类名$内部类名
        如:Body$Heart.class

    匿名内部类 【重点】

    是内部简化写法。他的本质是一个【带具体实现的】【父类或者父接口】【匿名】子类的对象。在开发中最常用的内部类就是匿名内部类。

    实例:

                 以接口举例,当你使用一个接口的时候,你需要做如下操作:
                            1.定义一个子类
                            2.重写抽象方法(还有少量的方法)
                            3.创建子类对象
                            4.调用重写后的方法。
            我们的目的就是调用接口中的某一个方法,以上四步可以简化成一步操作
        前提:
                    匿名内部类必须是继承一个父类或者实现一个父接口。
        格式:
                    new  父类名或者父接口名(){
                            //方法的重写
                            @Override
                            public void method(){
                                    //方法体内容
                            }
                    }
    举例:
            以接口为例,匿名内部类的使用。
  • 相关阅读:
    并行和并发
    怎样用第三方开源免费软件portecle从https站点上导出SSL的CA证书?
    我持续推动Rust语言支持Windows XP系统
    Android——4.2.2 文件系统文件夹分析
    hadoop(八)
    自己定义html中a标签的title提示tooltip
    多个返回 顶部的代码
    同学们,OpenCV出3.0了,速去围观!
    hdu1002
    好记性不如烂笔头(一)
  • 原文地址:https://www.cnblogs.com/rxqq/p/13922594.html
Copyright © 2011-2022 走看看