Java内部类

Java中的内部类分为局部内部类、匿名内部类、成员内部类和静态内部类。局部内部类能直接访问外部类的所有成员,但作用域仅限于定义它的方法或代码块。匿名内部类是无名称的,常用于快速实现接口或父类的简化版本。成员内部类可以直接访问外部类的所有成员,而静态内部类只能访问外部类的静态成员。所有内部类都可以访问外部类的成员,但外部其他类不能直接访问局部内部类。
摘要由CSDN通过智能技术生成

Java内部类

在Java的类中有5大成员:

1、属性 2、构造器 3、方法 4、代码块 5、内部类

内部类根据特点又分为四种

定义在在外部类的局部位置上(比如方法内)

  • 有类名的叫 局部内部类/方法内部类
  • 没有类名的叫 匿名内部类. (重点!!!!!)

定义在外部类的成员位置上

  • 没有static修饰的叫 成员内部类
  • static修饰的叫 静态内部类



局部内部类的使用细节

1、可以直接访问所在外部类的所有成员,包括私有的private
2、不能添加访问修饰符,因为它本质是个局部变量。局部变量不能使用访问修饰符,但可以使用final修饰,因为局部变量本身就可以使用final修饰。
3、作用域:仅仅在定义它的方法或代码块中
4、局部内部类-----访问---->外部类成员【访问方式:直接访问】
5、外部类-----访问------》局部内部类成员【访问方式:创建对象,再访问(必须在作用域内创建对象调用)】
6、外部其他类----不能访问----局部内部类
7、当外部类与局部内部类成员重名时,默认遵循就近原则,如果想访问外部类的成员,可以使用(外部类.this.成员)来访问



匿名内部类的使用细节

局部内部类的使用细节除了局部内部类的所有细节外还有以下需要注意:
它的具体格式为
new 父类(参数列表) 或 父接口(){//匿名内部类实现部分 }
理解:

new 父类(参数列表) 或 父接口{}

这相当于创建了一个实例对象,后面的一对大括号表示该对象是父类的子类对象,该子类是匿名的。大括号内的实现代码包括对父类方法的重写或接口抽象方法的实现



成员内部类的使用细节

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

内部类同样可以访问所有外部成员,但如果内部类被声明为私有,外部类则无法访问到内部类


静态内部类的使用细节

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

静态内部类只能访问外部类的静态成员
并且只有静态内部类中才可以定义静态成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值