内部类是啥啊?我不到啊!

本文详细介绍了Java的四种内部类:成员内部类、静态内部类、局部内部类和匿名内部类,阐述了它们的特点、创建方式以及在封装和功能扩展上的作用。重点讨论了内部类如何访问外部类的私有成员,以及静态内部类作为独立类的特性。此外,还提及了局部内部类和匿名内部类在方法内的使用限制和优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类1.编译后可以生成独立的字节码文件 2.内部类可直接访问外部类的私有成员,而不破坏封装 3.可为外部类提供必要的内部功能组件
{
    成员内部类成员内部类不能定义静态成员、可以包含静态常量,级别低于外部类 ){
Outer outer = new Outerus();//创建外部类对象
 Inner inner = outer.new Inner();//创建内部类对象
Inner inner =new Outer().new Inner();//创建内部类对象的一步登天方法
属性和外部类属性相同时访问外部类属性(Outer.this.xxx)默认的话访问内部的
}
    静态内部类static,不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员,相当于一个外部类级别和外部类相同){
    直接创建静态内部类对象  Outer.Inner = new Outer.Inner();(Outer.Inner()表现的是一种层次关系)
Java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类
}
    局部内部类类似于局部变量,定义在外部类的方法中,作用范围和创建对象仅限于当前方法){
局部变量不能带访问修饰符,局部内部类也一样 
Outer outer = new Outer();//创建外部类对象去调用局部内部类的方法,(外部类的方法里面创建局部内部类的对象,去调用局部内部类的方法)
局部内部类访问同级别的局部变量时,该局部变量应为常量(final)jdk1.7之前都要加final,18.自动生成。(因为无法保障变量的生命周期与自身相同,变量必须修饰为final)
}
    匿名内部类没有类名的局部内部类,一切特征都与局部内部类相同){
必须继承一个父类或者实现一个接口 
使用匿名内部类优化(相当于创建了一个局部内部类)Usb usb = new Usb(){ 重写的方法}
是定义类,实现类,创建对象的语法合并,只能创建一个该类的对象。
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值