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

      }

    }

  • 相关阅读:
    (转)Java 详解 JVM 工作原理和流程
    sql复杂查询语句总结
    公众平台服务号、订阅号、企业号的相关说明
    新公司注册流程
    认缴出资额和实缴出资额的区别
    ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)
    APP后端处理视频的方案
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
    app后端搜索入门
    APP后端处理表情的一些技巧
  • 原文地址:https://www.cnblogs.com/daoxiang1992/p/5716474.html
Copyright © 2011-2022 走看看