首页 > 代码库 > java--4种内部类

java--4种内部类

内部类:

 

一 非静态内部类

//非静态内部类//非静态内部类可任意调用外部类的局部变量,无论是否private//在外部类中要实例化内部类:InnerClass inner = new InnerClass();//其他类中实例化内部类:1.Test.InnerClass inner = new Test.new InnerClass();//                     2.Test t = new Test();//                       t.InnerClass inner = t.new InnerClass();//class Test{    int i = 1;    class InnerClass{         public void run(){              System.out.println("outclass field = " + i);         }            }      public void run(){        InnerClass inner = new InnerClass();    }    }class RunTest{    Test t = new Test();    t.InnerClass inner = t.new InnerClass();       //或者      Test.InnerClass inner = new Test.new InnerClass();}         

 

二 局部内部类

/** * 局部内部类 * 1.局部内部类和局部变量作用相同,只在局部范围有效 * 2.局部内部类中可以直接调用外部类的成员变量 * 3.外部类创建局部内部类对象InClass inClass = new InClass(); * * **/public class OutClass {    int i = 8;    public void run(){        class InClass{            public void run(){                System.out.println("run field i = " + i);            }        }        InClass inClass = new InClass();        inClass.run();    }    }

三 静态内部类

/** * 静态内部类 * 1.静态内部类也可正常访问外部类成员变量 * 2.外部类实例化内部类InClass inClass = new InClass(); *  * **/public class OutClass {    static int t = 6;    static class InClass{        int i = 5;        int j = t;    }    public void run(){        InClass inClass = new InClass();        System.out.println(inClass.i);    }}

四 匿名内部类

    标准创建方式

new anonymous{};

使用

/** * 匿名内部类  * **/public class InnerClass4 {    public static void main(String[] args) {        Thread t = new Thread(){            public void run(){                for(int i = 1 ; i < 6 ; i++){                    System.out.println(i + " Ÿ ");                }            }        };        t.start();        Runnable r = new Runnable(){            public void run(){                for(int i = 6 ; i < 11 ; i++){                    System.out.println(i + " U ");                }            }        };        Thread t1 = new Thread(r);        t1.start();    }}

 

java--4种内部类