首页 > 代码库 > 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种内部类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。