java的内部类

xiaoxiao2021-02-28  44

内部类就是在类的内部再定义一个类,优点就是可以调用外部类的方法和私有变量

内部类分为静态内部类(静态绑定),匿名内部类,以及局部内部类。

静态内部类:在类中被static修饰的内部类

匿名内部类:不常用 如果只使用一次,可以写成匿名内部类

局部内部类:在方法中定义的类叫做局部内部类,在方法中可以new 多次

Outer类中定义内部类Inner,以及静态内部类Inner2

[java]  view plain  copy package Com;    public class Outer {      private String name;                  //内部类在普通方法调用方式      public void show()      {          System.out.println(name);          System.out.println("Outer .... show");          //第一种方式 在类的内部调用不需要创建外部对象(当前外部对象Outer()对象已经有了)          Inner inner = new Inner();          //第二种方式 创建外部对象Outer(),再调用外部对象的内部类对象Inner()           Outer.Inner inner2 = new Outer().new Inner();      }                  //内部类在静态方法中的调用方式      public static void staFun() {          // 静态方法不产生类的对象,是在编译期放入内存的,静态方法属于类不属于对象          //Inner inner = new Inner();          //在静态方法中,必须创建外部对象,才能调用内部类          Outer.Inner inner2 = new Outer().new Inner();      }                        //普通内部类      class Inner{          int age;          public void go()          {              System.out.println("innner....go");          }      }      //静态内部类      static class InnerSta{          public void go2()          {              System.out.println("InnerSta ...go");          }      }  }  

main:

[java]  view plain  copy package Com;    import Com.Outer.InnerSta;    public class main {        /**      * @param args      */      public static void main(String[] args) {                   // 普通内部类  需要先创建外部对象Outer,再创建内部对象Inner         Outer.Inner inner = new Outer().new Inner();         inner.go();         // 静态内部类 内部类属于外部类,直接用类名调用内部类即可创建对象         InnerSta inner2 = new Outer.InnerSta();         inner2.go2();        }    }  

内部类中使用接口和抽象类:

[java]  view plain  copy package Com;    public class Java3 {      public void show()      {                }            //内部类是接口      interface Inner{          void in();      }      //内部类是抽象类      abstract class B{                  }      //继承内部类抽象类,实现内部类接口       class A extends B implements Inner{          @Override          public void  in()          {                        }      }         }  
转载请注明原文地址: https://www.6miu.com/read-2631250.html

最新回复(0)