Java内部类

一、定义作用

定义:在一个类中再声明一个类,外面的类叫外部类,里面的类叫内部类或宿主类
(除了局部内部类)

【作用】:内部类专门为了管理外部类内容的

内外部类以及内部类的函数中定义有同名的变量name时

若要调用外部类的name为:外部类名.this.name
若要调用内部类的name为:this.name
内部类函数要调用自己的name,直接使用

二、内部类分类

1,成员内部类
2,静态内部类
3,局部内部类
4,匿名内部类

三、成员内部类

类似于外部类中的成员属性或成员方法

  • 1 可以用四种访问权限修饰符修饰
  • 2 成员内部类中不能用静态的属性和方法
  • 3 成员内部类中可以添加属性和方法
  • 4 成员内部类可以使用外部类的属性和方法(包括私有的)
  • 5 如果内部类中的属性和外部类中的属性同名(内部类中优先调用的是内部类的属性和方法)

    this 代表的是 内部类对象
    想要调用外部类的属性和方法需要通过外部类对象去调用

  • 6 创建内部类对象

    先创建外部类对象Outer outer = new Outer();
    通过外部类对象.new 内部类(); Outer.Inner inner = outer.new Inner();
    或者Outer.Inner inner = new Outer().new Inner();

  • 7 在其他类中创建内部类对象 【需要导包】

四、静态内部类

类似于外部类的静态的属性和方法

格式:static class 类名

可以存在静态或者是非静态的属性或者是方法

内部类属性如果和外部类属性同名了 优先调用的是内部类的

创建对象:
* Inner in = new Inner();
* 也要导包

创建静态内部类对象
Inner inner3 = new Inner();
StaticInner.Inner inner2 = new StaticInner.Inner();

应用场景: 建造者模式
内部类中有静态成员,那么内部类必须是静态的

五、局部内部类(鸡肋,完全没用,了解即可)

定义:在方法中定义的类
局部内部类使用了其所在函数的局部变量是,该局部变量必须是final修饰的
不能用修饰符
里面只可以出现非静态的属性和方法
只能在声明该类的方法中去创建对象
如果想要局部内部类执行 必须调用声明局部内部类的方法

六、匿名内部类

应用情景:只想用一次,若是多次最好建一个类

使用匿名内部类的前提条件:

存在父类或父接口
匿名内部类适用于不能创建对象的抽象类和接口
真正创建的是子类的对象 因为子类是匿名的 需要让父类名字代替

创建方法:
这里写图片描述

作用:节省代码量
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值