• java 内部类学习笔记


    内部类访问特点:

    1.内部类可以直接访问外部类中的成员。

    2.外部类要访问内部类,必须建立内部类的对象。

    一般用于类的设计:

    分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。

    这时就是还有的事物定义或内部类来描述。

    例:

    class Outer{

      private int num =3;

      class Inner {

        void show(){

          System.out.println("show run :"+ num);

        }

      }

    }

    //直接访问外部类中的内部类中的成员。

    Outer.Inner in = new Outer().new Inner();

    in.show();

    //如果内部类是静态的,相当于一个外部类

    //如果类是静态,那么类中使用的变量也应该为静态。

    Outer.Inner in = new Outer().Inner();

    in.show();

    class Outer{

      private static  int num =3;

      static class  Inner {

        void show(){

          System.out.println("show run :"+ num);

        }

        static void function(){

          System.out.println("show run :"+ num);    }

        }

    }

    调用:Outer.Inner.function();

    //如果内部类中定义了静态成员,该内部类必须也是静态的。

    class Outer{

      int num =3;

      class  Inner {

        int num=4;

        void show(){

          int num=5;

          System.out.println(Outer.this.num);

        }

       }

       void method(){

          new Inner(). show();

      }

    //Q:为什么内部类能直接访问外部类中成员呢?

    //A:内部类持有外部类的引用。  外部类名.this

    //内部类可以存放在局部位置上

    //从内部类中访问局部变量 X , 需要被声明为最终类型即:final 修饰,X为 常量。

    //内部类在局部位置上只能访问 局部中被final修饰的局部变量。

    如:

    void method(){

       final int x = 9;

      class Inner{

        void show(){system.out.println("show"+ x);};

      }

      new Inner().show();

    }

    //匿名内部类,就是内部类的简写格式。

    //前提:内部类必须继承或实现一个外部类或者接口。

    //匿名内部类:其实就是一个匿名子类对象。

    // 格式 new 类名or 接口 (){子类内容}

    abstract class Demo {

      abstract void show();

    }

    Class Outer{

      public void method(){

        new Demo(){

          void show(){

            System.out.println("匿名内部类");

          }.show(); 

        }

      }

    }

    //应用场景:

    //当函数参数是接口类型时,而且接口中的方法不超过三个。可以用匿名内部类作为实际参数进行传递。

      

  • 相关阅读:
    vue 单页面应用 app自适应方案
    css3-3D特效
    css3动画-transition
    html5基本页面
    初入博客园
    网络部分之如何发送HTTP请求
    多线程知识之NSOperation的使用
    多线程知识点之GCD的使用
    多线程知识点之NSThread的使用
    plist 文件读写
  • 原文地址:https://www.cnblogs.com/wangxh92/p/3671976.html
Copyright © 2020-2023  润新知