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编辑  收藏  举报

导航