package com.czp;
/**
*
* java内部类
* @author CaoZP
*
*/
public class OuterClass {
/**
*
* 非静态内部类
*
*/
public class PublicInnerClass{
void test()
{
System.out.println(getClass());
}
}
/**
* 静态内部类
*/
public static class StaticInnerClass{
void testX()
{
System.out.println(getClass());
}
}
/**
* 匿名内部类
*/
public TestInterface test = new TestInterface() {
@Override
public void print(String str) {
System.out.println(str);
}
};
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
//PublicInnerClass的实例化依赖于外部类的实例
PublicInnerClass publicInnerClass = outerClass.new PublicInnerClass();
publicInnerClass.test();
//静态内部类的实例化不需要外部类的实例
StaticInnerClass staticInnerClass = new StaticInnerClass();
staticInnerClass.testX();
//匿名内部类通常作为一个外部类的成员,通过外围类的实例引用
outerClass.test.print("Test");
}
}
interface TestInterface{
void print(String str);
}
java的内部类
最新推荐文章于 2020-01-09 22:02:35 发布