zoukankan      html  css  js  c++  java
  • 内部类的复习

    内部类分为4种:

    1.成员内部类;

    2.静态成员内部类;

    3。局部内部类;

    4.匿名内部类

    成员内部类:它是作为一个外部类的一部分,它是可以调用外部成员,但外部类不能直接调用它::

    class Outer{

      int x=3;

      class Inner{

        public void show(){

          System.out.println("x"+x);

        }

      }

    }

    public class test{

      public static void main(String[] args){

        Outer.Inner in=newOuter().newInner();

        in.show();

      }

    }

    静态内部类:随着类的加载而加载

    class Outer{

      int x=3;

      class Inner{

        public void show(){

          System.out.println("x"+x);

        }

      }

    }

    public class test{

      public static void main(String[] args){

        Outer.Inner in=Outer.newInner();

        in.show();

      }

    }

    局部内部类:因为不同变量的周期不同,调用变量结果也不一样

    class Outer{

      //final int x=1;

      public void methoh(){

        int x=3;

        class Inner{

          int x=4;

          public void show(){

            System.out.println("x"+x);

          }

        }

        new Inner().show();

      }

    }

    public class test{

      public static void main(String[] args){

       Outer out=new Outer();

      out.methoh();

      }

    }

    内部类的继承: 可以实现在局部内部类中有多个方法被使用时,可以向上转型后通过创建父类对象来统一调用

    abstract class Inter{

      abstract void show();//抽象类

    }

    class Outer{

      int x=1;

      public void methoh(){

        int x=3;

        class Inner extends Inter{

          int x=4;

          public void show(){

            System.out.println("x"+x);

          }

        }

        //返回个Inner给父类Inter

        public Inter getInner(){

          return new Inner();

        }

        //子类Inner向上转型,然后调用子类show()方法

        new Inter().show();

      }

    }

    public class test{

      public static void main(String[] args){

        Outer out=new Outer();

        out.methoh();

      }

    }

    匿名内部类: 可以简化一些只被加载一次的类调用的代码

    abstract class Inter{

      abstract void show();//抽象类

    }

    class Outer{

      int x=1;

      public void methoh(){

        int x=3;

        new Inter(){

          public void show(){

            System.out.println("x"+x);

          }.show();

        }

      }

    }

    public class test{

      public static void main(String[] args){

        Outer out=new Outer();

        out.methoh();

      }

    }

  • 相关阅读:
    字符串面试题:将句子的单词序倒置
    字符串面试题:将整型转换为字符串
    QML定时器
    QML按键事件处理
    QML鼠标事件实现变色矩形
    QML动态加载组件
    QML鼠标区域控制
    属性绑定与赋值
    设置虚拟机的本地端口映射
    关于修改banner信息;nginx反向代理apache应用
  • 原文地址:https://www.cnblogs.com/daoxiang1992/p/5716474.html
Copyright © 2011-2022 走看看