Java中的内部类

        Java中的内部类,顾名思义,就是在一个类的内部再创建一个类。

        内部类的好处:

        1、内部类的对象能够访问创建它的对象的所有方法和属性,包括私有数据。

        2、对于同一个包中的其他类来说,内部类是隐形的。

        3、匿名内部类可以方便地定义回调。

        4、使用内部类可以方便地编写事件驱动的程序。

       作为一个单独的类,的确只能有"public"和"default"两种访问控制符,但是作为内部类,就可以使用"private"控制符,当内部类设置为private,包含次内部类的外部类的方法才可以访问它。

局部内部类:

       局部变量就是在某个类的方法中定义的变量,它的作用范围就在这个方法体内。同样局部内部类就是在类的方法中定义的一个内部类,它的作用范围也在这个方法体内。

      局部内部类就是定义在外部类的方法中,与局部变量类似,在局部内部类前不加修饰符public和private,其范围为定义它的代码块。局部内部类不仅可以访问外部类实例变量,还可以访问外部类的局部常量,但要求外部类的局部变量是final的。其实,以上做法,相当于是为内部类添加了一个属性,这个属性就是外部类的final局部变量。在类外不可直接访问局部内部类,以保证局部内部类对外是不可见的,只有在方法中才能调用其局部内部类。

静态内部类

       当一个内部类不需要引用它的外部类的方法、属性值时,可以讲这个类设置为static,这就是静态内部类。既然是静态的,包含它的类要引用它时,就可以不必创建对象,直接引用。在静态内部类中只能访问外部类的静态成员。构造内部类对象,不再需要构造外部类对象。

匿名内部类

        在编写程序代码时,不一定要给内部类取一个名字,可以直接以对象名来代替。                                                   匿名类如何在程序中使用?

        匿名类是一种特殊的局部内部类,用来继承一个类或者实现一个接口。匿名内部类不能定义构造方法。在编译的时候由系统自动起名Out$1.class。如果一个对象编译时的类型是接口,那么其运行的类型是实现这个接口的类,因为匿名内部类无构造方法,所以其使用范围非常有限。

接口与继承有什么区别?

接口在本质上就是一个特殊的类。在语法上跟继承有着很大的区别。

属性:接口中所有属性都是公开静态常量,继承则无所谓。

方法:接口中的所有方法都是公开抽象方法,继承中所有的方法不一定都是抽象方法。

接口方法:接口没有构造器,继承有构造器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值