Java 内部类简介,理解,特点,注意事项

什么是内部类

内部类,顾名思义,就是在一个类当中再定义一个类。例如在python当中的闭包函数(函数内部再定义一个函数)。Python闭包函数的理解
如果在类Outer的内部再定义一个类Inner,此时Inner就称为内部类(或者称为嵌套类),而类Outer则称为外部类(或者宿主类)。

既然是嵌套类,就需要注意作用域的问题。内部类拥有外部类的所有元素的访问权限。作为对比,非内部类却不允许有private和protected权限的,内部类可以很好的实现隐藏


内部类的特点

  • 1.内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件。

  • 2.内部类是外部类的一个成员,因此内部类可以自由的访问外部类的成员变量,无论是否为私有的private。如下图:内部类Inner可以自由的访问外部类的成员变量,前提是内部类不是静态的。
    在这里插入图片描述

  • 3.内部类如果申明为静态的,就不可以随便访问外部类的成员变量,仍然是只能访问外部类的静态成员变量。如下图:内部类Inner是静态的,只能访问外部类的静态属性。
    在这里插入图片描述


关于内部类要注意的地方:

  • 1.外部类只有俩种访问级别,public和默认。但是内部类却有四种访问级别:public、protected、private和默认。
  • 2.在外部类当中直接可以通过类名访问内部类:
    InnerClass ic = new InnerClass();
    注意这里的InnerClass为内部类的类名
  • 3.在外部类以外的其它类当中则需要通过内部类的完整类名访问内部类:
    Test.InnerClass ti = newTest().new InnerClass();
  • 4.内部类和外部类的名字不能一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值