JavaSE 内部类的几种分类

内部类:

类的内部再嵌套一个类,这个类被称为内部类。

访问外部类的所有成员。

常见于源码里会有嵌套的内部类。

内部类按照声明位置的不同分类:

1.成员内部类:

        方法外,类的里面,类似于成员变量声明的位置。

class Outer{

    //定义成员方法
    public void method(){}

    //定义成员内部类
    class Inner{

        //定义成员内部类里的成员方法
        public void show(){}
    }
}

//访问成员内部类的方法或属性:
//外部类.内部类 变量 = new 外部类.new 内部类();
Outer.Inner oi = new Outer.new Inner();
oi.show();

2.静态内部类:

        方法外,类的里面,有static修饰。

class Outer{

    //定义静态内部类
    static class Inner{

        //定义静态内部类里的成员方法
        public void show();
    }
}

//访问静态内部类的方法或属性:
//外部类.内部类 变量名 = new 外部类.内部类;
Outer.Inner oi = new Outer.Inner();
oi.show();

3.局部内部类:

        在方法内声明的类。

class Outer{

    //定义方法
    public void method(){

        //定义局部内部类
        class Inner {
            
            //定义局部内部类中的方法
            public void show(){}

        }

        //只能在方法内部访问
        new Inner().show();
    }
}

//如何访问局部内部类的方法或属性:
//只能在方法内部访问

 4.匿名内部类: -- 使用最多

                格式: new 父类/接口(){重写父类或接口的方法}。

                好处:省去了我们去写实现类或子类。

                应用场景:

                        有无抽象方法或多个抽象方法:

                                对非抽象的父类简写。

                                对抽象的父类简写。

                                对接口简写。

                        一个抽象类或接口中,并且抽象方法不多(一般不超过三个)。

                意思:创建了一个匿名的子类或实现类对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值