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();

      }

    }

  • 相关阅读:
    批处理文件 bat
    批处理文件 搜索指定路径文件拷贝出去
    css 表格
    jquery面试题
    indexedDB使用
    页面加载及优化
    Ajax,restful/Rest JSON和JSONP
    数组去重
    删除数组里大于3的元素
    判断一个字符串中出现次数最多的字符,统计这个次数
  • 原文地址:https://www.cnblogs.com/daoxiang1992/p/5716474.html
Copyright © 2011-2022 走看看