class OuterClass{
	public int k=10;
	private static String str="abc"; //可直接被内部类访问

	public static class InnerClass {
		private String s="inner class";
		public void func(){
			System.out.println(s);

			//可以直接访问外部类的~static~成员
			System.out.println(str);

			//也可以这样访问
			System.out.println(OuterClass.str);

			//只能通过创建对象来访问外部类非~static~成员
			int k1=new OuterClass().k;
			int k2=k; //此行错误，不能这样访问
			System.out.println("k:="+k1);
		}
	}

	//测试
	public static void main(String[] args){
		/*注意：
		  声明引用变量的类型；
		  new 后面的构造方法。
		  */
		OuterClass.InnerClass obj = 
			new OuterClass.InnerClass();
		obj.func();
	}
}
