JAVA内部类

一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类。

1.内部类的作用

1.内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。

2.内部类可以直接访问外部类的私有属性,内部类被当成外部类的成员。但外部类不能访问内部类的内部属性。

2.内部类的使用场合

由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。

3.内部类的分类

3.1成员内部类

可以使用privateprotectedpublic任意进行修饰。类文件:外部类s内部类class

3.1.1 成员内部类的访问方式

1.在外部类内提供一个方法创建内部类的对象进行访问。

2.在其他类创建内部类的对象进行访问。创建的格式:

外部类.内部类  变量名=new 外部类().new  内部类;

3.如果是静态内部类,则它的访问方式为:

  外部类.内部类   变量名=new  外部类.内部类();

  定义格式为:

      static  class ClassName{

           //类体

      }

3.1.2成员内部类的注意事项

1.成员内部类可以直接访问外部类的成员。

2.如果成员内部类与外部类存在同名的成员,在内部类中默认是访问内部类的成员,成员通过“外部类.this.成员”指定访问外部类的成员。

3.如果成员内部类出现了静态的成员,那么该成员内部类也得用static修饰。

4.如果成员内部类是私有的,那么创建内部类的对象就只能在外部类提供方法创建。

 

3.1.3匿名内部类

1.适合那种只需要使用一次的类。比如:键盘监听操作等等。语法:

new 父类构造器(实参列表)实现接口(){

      //匿名类类体

}

2.好处:可以简化书写

3.前提:必须有继承的关系

3.1.4 局部内部类

1.定义:在一个类的方法内部定义的另外一个类,则这个类称为局部内部类。

2.局部内部类注意的事项:如果局部内部类访问了局部变量,那么该变量需要使用final修饰(原因:因为声明周期不一致,所以内部类访问的局部变量是一个复制品。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值