JAVA总结篇九(内部类)

内部类

一、常规内部类

常规内部类示列:

package com.inner;

public class CommonInner {
    public static void main(String[] args) {
        CommonInner.TestInner in = new CommonInner().new TestInner();
        in.innerTest();
    }
    public void outTest(){
        System.out.println("外部类方法");
    }

    public class TestInner {
        public void innerTest() {
            System.out.println("常规内部类方法");
            new CommonInner().outTest();
        }
    }

}

用外部实例化对象直接实例化内部类即可

二、静态内部类

静态内部类示列:

package com.inner;

public class StaticInner {
    public static void main(String[] args) {
        new StaticInner.TestInner().innerTest();
    }

    public void outTest() {
        System.out.println("外部类方法");
    }

    public static class TestInner {
        public void innerTest() {
            System.out.println("静态内部类方法");
            new StaticInner().outTest();
        }
    }

}

由于有static修饰,因此只需用外部类对象直接调用便可,无需实例化

三、局部内部类

局部内部类示列:

package com.inner;

public class PartInner {
    public static void main(String[] args) {
        System.out.println(new PartInner().test().toString());
    }

    public Object test() {
        class TestInner {
            public String toString() {
                String str = new PartInner().outTest();
                return str;
            }
        }
        return new TestInner();
    }

    public String outTest() {
        return "外部类方法";
    }

}

局部内部类只有通过所在方法进行调用,也就是说,该类只有在所在的方法内调用,只能在局部调用

四、匿名内部类

匿名内部类示列:

package com.inner;

public class NewInner {
    public static void main(String[] args) {
        Inner in = new Inner() {
            public void test() {
                System.out.println("局部内部类1");
            }
        };
        in.test();
    }
}

package com.inner;

public interface Inner {
    void test();

}

匿名内部类的创建一般只是在类只使用一次的情况下使用,匿名内部类的创建必须实现一个接口或继承一个类,该类中的方法通过接口或父类进行调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值