Java内部类和静态内部类的调用方式

内部类 
public class Test { 

  class A{ 
	public void setA(){ } 
       } 

	public static void main(String[] args){ 
		Test t=new Test(); 
    } 
 } 


调用方式: 
public class Test2 { 
	public static void main(String[] args){ 
		Test test=new Test(); 
		Test.A t=test.new A(); 
		t.setA(); 
   } 
} 



静态内部类 
调用静态内部类的非静态方法: 
public class Test { 
   static class A{ 
      public void setA(){ } 
    } 
 } 

public class Test2 { 
	public static void main(String[] args){ 
		Test.A a=new Test.A(); 
		a.setA(); 
	} 
} 



调用静态内部类的静态方法: 
public class Test { 

	static class A{ 
		static public void setA(){ } 
		} 
} 

public class Test2 { 
	public static void main(String[] args){ 
		Test.A.setA(); 
	} 
} 


new Outer.Inner(); // 可以 
new Inner(); // 在Outer类内部可以 
new foo.Outer.Inner(); // 在包外做内部类实例化, 或者先导包再像第一个那样写.

你可能感兴趣的:(Java内部类和静态内部类的调用方式)