关于java内部类总结

分类

(1) 在类中定义一个类(私有内部类,静态内部类)

(2) 在方法中定义一个类(局部内部类,匿名内部类)

内部类是Java编译器一手操办的。虚拟机并不知道内部类与常规类有什么不同,

主要是编译器在编译的时候对内部类和外部类加以处理。


特点总结:

(1)  在类中方法外定义的非静态内部类: 

       ● 内部类可互相访问外围类的所有成员。内部类对外围类可见,可以在外围类中创建内部类对象,引用内部类数据

       ● 内部类中不能定义静态成员变量。

// 在内部类中偷偷摸摸的创建了包可见构造器,从而使外部类获得了创建权限。

     // 在外部类中偷偷摸摸的创建了访问私有变量的静态方法,从而 使 内部类获得了访问权限。

//这样,类中定义的内部类无论私有,公有,静态都可以被包围它的外部类所访问。


(2) 在类中方法外定义的静态内部类:

       ● 只能访问外部类的静态成员。//静态内部类无法得到其外围类对象的引用,那么自然也就无法访问外围类的非静态成员了。因此,静态内部类只能访问其//外围类的静态成员,除此之外与非静态内部类没有任何区别。

 


(3) 在方法中定义的局部内部类:

       ● 该内部类没有任何的访问控制权限  //修饰符无意义

       ● 外围类看不见方法中的局部内部类的,但是局部内部类可以访问外围类的任何成员。

       ● 方法体中可以访问局部内部类,但是访问语句必须在定义局部内部类之后。

       ● 局部内部类能访问方法体中的常量,即用final修饰的成员。//为了保持局部变量与局部内部类中备份域保持一致


(4) 在方法中定义的匿名内部类:

       ● 是一种特殊的局部内部类,没有构造器,取而代之的是将构造器参数传递给超类(接口或者父类)构造器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值