}
class Outer//外部类
{ private int x = 3;
static int y =6;
class Inter1//内部类
{
int x = 4;
public void showpublic()//普通内部类函数
{
int x =5;
System.out.println("显示局部变量中x值:");
System.out.println(x);
System.out.println("显示内部类中x值:");
System.out.println(this.x);
System.out.println("显示外部类中x值:");
System.out.println(Outer.this.x);
}
}
static class Inter2//静态内部类
{
public void showstatic()//静态内部类公有函数
{
SOP(y);
}
public static void showstatic2()//静态内部类的静态函数
{
SOP(y);
}
}
private class Inter3//私有内部类
{
public void showprivate()
{
showgy();//内部类访问外部类函数
}
}
static fu shownm1()
{
return new fu()
{
public void shownm()
{
System.out.println("匿名内部类调用的方法:");
showjt();
}
};
}
public void showsy()//外部类调用私有内部类
{
System.out.println("外部类访问私有内部类的方法获取到的x值:");
Inter3 i = new Inter3();
i.showprivate();
}
public void showgy()//外部类调用公有内部类
{
Inter1 i = new Inter1();
i.showpublic();
}
public static void showjt()//外部类调用内部类的非静态方法
{
SOP("外部类访问静态内部类的非静态方法获取到的y值:");
new Outer.Inter2().showstatic();
}
public static void showjt2()//外部类调用内部类的静态方法
{
SOP("外部类访问静态内部类的静态方法获取到的y值:");
Outer.Inter2.showstatic2();
}
private static void SOP(Object obj)//偷懒用的--打印函数
{
System.out.println(obj);
}
}
public class Test8 {
public static void main(String[] args)
{
Outer o = new Outer();
o.showgy();
Outer.Inter1 i = new Outer().new Inter1();
i.showpublic();
Outer.showjt();
Outer.showjt2();
o.showsy();
Outer.shownm1().shownm();
}
}