【Java学习】内部类

面向对象系列六

一、类级别

1.静态成员

2.非静态成员与方法

二、类的创建与成员管理

1.类的创建

2.类的成员管理

三、常见的内部类

1.非静态内部类

2.静态内部类

3.匿名内部类

4.局部内部类


一、类级别

1.1静态成员

静态成员类级别的是能一路直属都是在类层面的,所在的区域一定是在最外层类变量空间中一层一层往里的,且它们的生命周期与最外层类共存,最外层类一加载它们也一层层往里加载好的,一路与类共存与最外层类共存


1.2非静态成员与方法

非静态成员(模具变量)、所有方法都是属于所在类的类变量的类层面但不一定一路直贯到顶层类(如果一路贯到顶层类的模具、方法,也是属于类级别)

非静态成员、非静态方法都是设计于似复刻变量即实例对象使用的:

  • 非静态成员是属于当前类变量下的但作为模具不能直接使用的,需要对当前类创似复刻变量创非静态成员的复制变量
  • 非静态方法需要创出有当前似复刻变量对象的引用去访问调用使用上非静态方法

二、类的创建与成员管理

2.1类的创建

类变量创建、似复刻变量new出时可在刚创建出来的它们后面加{}增创也成为其变量的空间由其管理的


2.2类的成员管理

{}里成员的静态与非静态也是其变量管理它{}里面成员的一种方式

  • 普通类即顶层类它不作成员被管理的没有静态与非静态之分
  • 内部类是在类内部定义的类,都是定义在顶层类{}里的类,内部类都是其所在外部类中的一个成员都是作为一个变量即类变量是有静态与非静态被管理的静态的外部类类变量可对此类成员直接访问,非静态的需要实例外部类类变量创外部类的似复刻变量复制有它对复制的它访问

一个类本身{}里面就可以创有静态与非静态去管理此类{}里的内容

在此类本身上给它修饰静态与非静态后的是说明该类本身又是作为一个成员被上层类变量管理下的

一个类被上层类静态与非静态管理后,它类本身{}里面的静态与非静态内容就要加上对将来被上层类管理使用场景负责的,但其实静态与非静态修饰类并不会直接影响在类里面定义静态与非静态内容,因为静态与非静态都是对于外部类管理它里面成员而言的,只是内部类成员要多上对将来使用场景负责,其实不管是被静态还是被非静态修饰,对于类本身而言没有影响的,在它们里面的非静态方法自然都有此类变量引用的隐藏形参,不是说被static修饰后的类就不能对它创似复刻变量了,一样是可以的


三、常见的内部类

3.1非静态内部类

非静态内部类 是其所在的 外部类中的 一个正常非静态成员,是外部类的 一个成员变量,非静态的成员变量,同样是 作为模具 给按此所在的 外部类 类变量 创实例时的 模具变量 给用来创复制变量的,对着模具创好 能用来用的 复制变量 在似复刻变量里面 属于对象里 在堆区,它非静态类{}里创的 类变量的内容 在模具被创好成复制变量 拿来用时,类变量本身是 实例复制在似复刻变量里 在堆区的,这个非静态 类成员 类变量 被作模板 在复制变量里创,类变量里的内容 都会在堆区给使用的,它类变量里的成员 不能是静态的,因为使用时 它们都是在堆上的 都不在类级别空间上(但未使用 未复制时的 非静态内部类 本身是类的模具 在类级别空间上)但允许static final修饰的常量

  • 非静态内部类{}里 不能有静态、允许static final常量

3.2静态内部类

静态内部类是 所在外部类的一个静态成员,它与非静态内部类成员 作为模具一样,都是 直属最外层类级别的,对它作为内部类成员,去使用时 不用创外部类的似复刻变量 复制拿到它 才可用的,它是直接可以 用外部类变量 直接拿到的,直属类级别(非静态内部类作为模具 不能直接使用,需要对外部类 创似复刻变量 创它的复制变量后 才可拿到使用)不需要复制实例化它的,直接通过类级别 即可使用,它里面成员的静态与非静态 都无使用场景限制,正常有它的 静态与非静态 成员与方法

  • 静态内部类{}里 正常有它的 静态与非静态 成员与方法

3.3匿名内部类

匿名内部类是 似复刻变量new出 创建出似复刻变量时 {}增创定义的类它没有类名 不能被static修饰声明为静态,它是非静态的内部类匿名内部类{}的实例 与它创的那个似复刻变量的实例 一起完成的,{}类的内容 在定义时就完成了实例化它的使用是一次性的 因为匿名 后面无法再用此类变量 创似复刻变量,是直接 现创类 现定义里面内容 现直接用的,即对于所在外部类来说 它是一个非静态成员 属于是非静态内部类,类的内容将来 被似复刻变量复制,它一创建就实例后 只能在它所在的{}里 一次用的,再用 就要再调用 再创一个新的实例再用的,类的{}内容 也是作为它new创的 它那个类的似复刻变量的 增扩在堆区的,所以匿名内部类{}里面的内容 也不能有static的也不允许有static final修饰的常量,而且访问的数据 只能是全局编译下 没有修改过的默认final数据

  • 匿名内部类{}里 不能有静态、不允许static final常量、不允许 有被修改的非final数据

3.4局部内部类

局部内部类的生命 在所在方法、代码块{}内部,不可能是 类级别的{} 生命同样长的,它不属于类级别的,局部类本身 不能用static修饰,所以是非静态的 内部类里面{}的内容 不能有静态,也不允许 有static final修饰的常量

  • 局部内部类{}里 不能有静态、不允许static final常量

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值