内部类

内部类
一、
1、内部类由成员变量和成员方法组成。
2、内部类由三种:嵌入式(nested)、内部成员类(inner)和本地类。
A、当类的前面有static修饰符时,他就是嵌入类。—嵌入类只能和外部类的成员并列,不能定义在方法中。
B、类和外部类 的成员是并列定义的,并且没有static修饰,就叫内部成员类。
C、类定义在某方法里,—-本地类。
二、
1、嵌入类的定义
[权限修饰符] static class 类名 [extends 父类名][implements 接口列表]{ 类体 }
访问权限:public protected private default
嵌入类的类体中,可以定义任何类型的成员属性和方法,
PS:嵌入类本身是final类型或 abstract类型,也可以被其他类继承。
嵌入类不能和包含它的外部类同名,也不能和其他成员同名。
2、内部成员类的定义
[权限修饰符] class 类名 [extends 父类名][implements
接口列表]{ 类体 }
内部成员类 的类体不能有静态成员,—-包括静态成员变量和静态成员方法。但是可以有静态常量。

3、本地类的定义
定义在方法里的叫本地类。不能被static修饰。它的类体与内部成员类相似。类体不能有静态成员,—-包括静态成员变量和静态成员方法。但是可以有静态常量。
本地类的作用域是定义它的方法,所以没有访问类型。

三、内部类访问外部类的成员
1、嵌入类访问外部类成员
嵌入类本身是static修饰的,所以嵌入类里面所有的成员均是处于静态环境下,因此,只能访问外部类的静态成员,不允许访问实例成员。
PS:为什么都是在内部类的实例方法里访问的。
2、内部成员类访问外部类成员
内部成员类里面不能定义静态成员(静态成员变量和静态成员方法),但是内部成员类的实例方法可以访问外部类的静态成员和实例成员。(没有任何限制)
3、本地类访问外部成员
因为,本地类定义在外部类的方法里,方法可以是静态的,也可以是非静态的。所以分情况讨论。
A、实例方法中的本地类访问外部成员
当本地类所在的方法是非静态(实例方法)的时候,本地类生成的实例方法可以访问任意外部类成员(类似于内部成员类),同时本地类可以定义局部变量。但是,本地类可以访问局部常量,不可以访问局部变量。
B、静态方法中的本地类访问外部成员
只能访问外部类的静态成员。本地类可以访问局部常量,不可以访问局部变量。

四、在主函数内访问内部类
A、内部成员类
外部类名.内部类名 变量名 = new 外部类名().new 内部类名()
若内部类是私有的,则不能访问。
B、嵌入类
外部类名.内部类名 变量 = new 外部类名.内部类名();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值