java学习笔记.07——内部类

内部类

内部类就是定义在类中的类。
内部类是外部类的一个成员,可以直接引用外部类的其它成员。


定义方式如下:

class OuterClass
{
    ...

    private Object outerfield;

    public void outerMethod() {}

    class InnerClass
    {
        private Object innerfield;

        public void innerMethod()
        {
            outerfield = ***;
            outerMehthod();
        }

        ...
    }
}

引用内部类:

new OuterClass().new InnerClass();

//静态内部类
new OuterClass().InnerClass();

局部内部类

还有一种定义在方法内的内部类,即局部内部类。局部内部类相当于方法内定义的变量,不能用成员修饰符修饰。

  1. 局部内部类可以访问外部类的不同名变量,同名变量则取内部类的变量。
  2. 局部内部类只能访问定义成final的局部变量。
  3. 局部类内this指向自身。
class OuterClass
{
    ...

    private Object outerfield;

    public void method() {}
    {
        class InnerClass
        {
            private Object innerfield;

            public void innerMethod()
            {
                outerfield = ***;
                outerMehthod();
            }

            ...
        }

        ...
    }
}

匿名内部类

匿名内部类没有名字,所以是一次性的。在使用接口时十分方便。比如匿名内部类在线程中应用就十分广泛。例如:

Thread t = new Thread(new Runnable() {
    @override
    public static void()
    {
        ...
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值