java成员内部类
java成员内部类依赖于外部类而存在,故创建内部类需要首先创建其关联的外部类。
public class Test { public static void main(String args[]) { Inner obj = new Inner(); // 报错,No enclosing instance of type Test is accessible. } class Inner { String str; void say() { System.out.println("From Inner class"); } } }
改为
Test test = new Test();
Test.Inner obj = test.new Inner();
或将内部类改为静态内部类,静态内部类不依赖于外部类。
public class Test { public static void main(String args[]) { Inner obj = new Inner(); } static class Inner { // 静态内部类不依赖于外部类 String str; void say() { System.out.println("From Inner class"); } } }
也可以在外部类中添加创建内部类的函数
public class Test { public static void main(String args[]) { Test.Inner obj = new Test().getInner(); } class Inner { String str; void say() { System.out.println("From Inner class"); } } Inner getInner() { return new Inner(); } }
posted on 2017-12-05 21:34 Deltadeblog 阅读(304) 评论(0) 编辑 收藏 举报