疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中的内部类


 

       Java的内部类分为四种:

  static inner class:可以访问static变量和方法

  inner class:可以访问static变量和方法;可以访问类变量和类方法

  local class:可以访问final变量,static变量和方法;如何在非static方法中,可以访问类

  变量和类方法

  anonymous class:可以访问final变量,static变量和方法;如何在非static方法中,可以访

  问类变量和类方法

  下面时它们的使用方法:

  OuterClass.java

  public class OuterClass {

  static class StaticNestedClass {

  public void printIt() {

  System.out.println("StaticNestedClass");

  }

  }

  class InnerClass {

  public void printIt() {

  System.out.println("InnerClass");

  }

  }

  public static void main(String[] args) {

  StaticNestedClass c1 = new StaticNestedClass();

  c1.printIt();

  }

  }

  Test.java

  [java] view plaincopy

  import other.OuterClass.InnerClass;

  import other.OuterClass.StaticNestedClass;

  public class Test {

  public static void main(String[] args) {

  StaticNestedClass c1 = new StaticNestedClass();

  c1.printIt();

  OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();

  nestedObject.printIt();

  //inner class

  OuterClass oc = new OuterClass();

  InnerClass c2= oc.new InnerClass();

  c2.printIt();

  class LocalClass {

  public void printIt() {

  System.out.println("LocalClass");

  }

  }

  LocalClass lc = new LocalClass();

  lc.printIt();

  LocalClass lc2 = new LocalClass() {

  @Override

  public void printIt() {

  System.out.println("AnonymousClass");

  }

  };

  lc2.printIt();

  PrintInterface pi = new PrintInterface() {

  @Override

  public void printIt() {

  System.out.println("AnonymousClass2");

  }

  };

  pi.printIt();

  }

  interface PrintInterface {

  public void printIt();

  }

  }

  以下时屏幕输出:

  StaticNestedClass

  StaticNestedClass

  InnerClass

  LocalClass

  AnonymousClass

  AnonymousClass2