首页 > 代码库 > 匿名内部类、成员类与局部类
匿名内部类、成员类与局部类
今天看代码,看到几个概念:内部类、局部类、成员类、静态成员类、匿名内部类;瞬间有种被搞糊涂了感觉。下面是一个小例子来对它们进行说明:
public class ClassTest{ public static void main(String[] args) { ClassTest son = new ClassTest(); //测试匿名类 son.testAnonymous(new AnonymousClass() { @Override public void test() { System.out.println("1 -> " + this.getClass().isMemberClass()); System.out.println("1 -> " + this.getClass().isAnonymousClass()); System.out.println("1 -> " + this.getClass().isLocalClass()); System.out.println("---------------------------------------"); } }); //测试成员类 son.testMember(); //测试静态成员类 new StaticMemberClass(); //测试局部类 class LocalClass{ public LocalClass(){ System.out.println("4 -> " + this.getClass().isMemberClass()); System.out.println("4 -> " + this.getClass().isAnonymousClass()); System.out.println("4 -> " + this.getClass().isLocalClass()); System.out.println("---------------------------------------"); } } new LocalClass(); } private void testAnonymous(AnonymousClass inner) { inner.test(); } private void testMember() { new MemberClass(); } /** * 接口,用于测试内部类 * @author xinghzhang * */ interface AnonymousClass{ public void test(); } /** * 静态成员类 * @author xinghzhang * */ static class StaticMemberClass{ public StaticMemberClass() { System.out.println("3 -> " + this.getClass().isMemberClass()); System.out.println("3 -> " + this.getClass().isAnonymousClass()); System.out.println("3 -> " + this.getClass().isLocalClass()); System.out.println("---------------------------------------"); } } /** * 成员类 * @author xinghzhang * */ class MemberClass{ public MemberClass() { System.out.println("2 -> " + this.getClass().isMemberClass()); System.out.println("2 -> " + this.getClass().isAnonymousClass()); System.out.println("2 -> " + this.getClass().isLocalClass()); System.out.println("---------------------------------------"); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。