标签:
内部类的使用
1内部类对象的创建:
非静态内部类:Outer.Inner oi = new Outer().new Inner();
静态内部类:Outer.Inner oi = new Outer().Inner();
2内部类的方法调用
非静态内部类和静态内部类的非静态方法:oi.test();
静态内部类的静态方法:Inner.test();
public class Test { public static void main(String[] args) { new Test().new Inner1().test1(); new Test().new Inner1().test2(); new Test.Inner2().test1(); new Test.Inner2().test2(); Inner2.test3(); } private class Inner1{ public void test1(){ System.out.println("测试内部类公共方法"); } private void test2(){ System.out.println("测试内部类私有方法"); } // public static void test3(){//含有静态方法的内部类必须是静态类 // System.out.println("测试内部类静态私有方法"); // } } private static class Inner2{ public void test1(){ System.out.println("测试静态内部类公共方法"); } private void test2(){ System.out.println("测试静态内部类私有方法"); } public static void test3(){ System.out.println("测试静态内部类静态私有方法"); } } }
3.在其他类中方法的调用:
非静态内部类和静态内部类的非静态方法:oi.test();
静态内部类的静态方法:Outer.Inner.test();
4.方法内部类,只能在当前方法中被调用,调用时必须在类创建后面创建
public class Outer { public void test1(){ System.out.println("测试外部类类公共方法"); } private void test2(){ System.out.println("测试外部类私有方法"); } public void test3(){ class Inner{ public void test(){ System.out.println("测试方法内部类"); } } new Inner().test(); } class Inner1{ public void test1(){ System.out.println("测试内部类公共方法"); } private void test2(){ System.out.println("测试内部类私有方法"); } } static class Inner2{ public void test1(){ System.out.println("测试内部类公共方法"); } private void test2(){ System.out.println("测试内部类私有方法"); } static void test3(){ System.out.println("测试内部类静态方法"); } } }
5.1内部类在其他类中创建与调用有权限限制,但在外部类中调用没有权限限制
5.2含有静态方法的内部类必须是静态类
5.3内部类生成的字节文件名为Outer$Inner.class,方法内部类生成的字节文件名为Outer$1Inner.class
标签:
原文地址:http://www.cnblogs.com/cjcblogs/p/4730472.html