篇一:外部类与成员内部类的声明成员的规则 + 各种类访问成员的规则

一、总结1:外部类和成员内部类声明成员的规则

外部类 和 成员内部类 声明成员时,关注的点在于:是否能够声明静态成员;跟公有、私有无关。

1. 外部类

外部类既能声明非静态成员又能声明静态成员

2. 成员内部类

成员内部类分为:非静态成员内部类静态成员内部类

为了兼容JDK16以下版本的代码,建议严格按照JDK16之前的规则编写代码。即:非静态成员内部类不允许声明自己的静态成员

二、总结2:各种类访问成员的规则

1. 本类访问自己的成员

包括 成员内部类访问自己内部类成员外部类访问自己外部类成员

(1) 非静态方法中:访问(非静态/静态)成员:直接访问;

(2) 静态方法中:访问非静态成员new 本类().成员;

                           访问静态成员:直接访问

2. 成员内部类访问外部类成员

(1) 非静态成员内部类访问外部类的成员,需要通过以下方式访问:

     ① 访问外部类的非静态成员:通过“外部类名.this.成员”访问。

     ② 访问外部类的静态成员:通过“外部类名.成员”访问。

(2) 静态成员内部类访问外部类的成员,需要通过以下方式访问:

    ① 访问外部类的非静态成员:生成外部类实例对象,并调用外部类不同名的成员。

    ② 访问外部类的静态成员:通过“外部类名.成员”访问。

3. 外部类访问成员内部类的成员

(1) 外部类访问成员内部类,要先遵循 [本类访问自己的成员] 的规则:

非静态方法中:创建(非静态/静态)成员内部类对象 new 成员内部类()

静态方法中:创建非静态成员内部类对象new 本类().new 成员内部类();

                 创建静态成员内部类对象 new 成员内部类();

(2) 获得成员内部类的对象后,利用对象去访问内部类的(非静态/静态)成员成员内部类对象.成员

(3) 特殊:外部类要访问静态成员内部类静态成员,可以直接:静态内部类.静态成员

         无需创建成员内部类对象

4. 外部类外面的类 访问 外部类的成员内部类

外部类外面的类,我们可以称为:其他外部类

如果成员内部类的权限修饰符允许,那么在外部类的外面也可以使用成员内部类,但是必须依赖外部类。

而且访问的规则跟内部类成员公有或者私有相关。

1.在其他外部类所有类型方法中,访问(非静态/静态)成员内部类的成员

(1) 先通过外部类的对象创建内部类的对象:

                                                                   (外部类对象 调用 内部类对象)

    ① 非静态内部类对象:Outer.Inner inner = new Outer().new Inner();

                                                    (Outer.Inner()  外部类名 调用 静态成员内部类的构造器方法())

    ② 静态内部类对象: Outer.Inner inner = new Outer.Inner(); 

(2) 获得内部类的对象后,该对象访问自己的(公有/私有)成员,有以下规则:

      ① 公有成员:

         [1] 访问公有(非静态 / 静态)成员:内部类对象.公有成员;

         [2] 访问公有静态成员:外部类名.内部类名.静态成员;

      ② 私有成员:

         私有成员只能通过内部类公有的GetXxx方法访问。否则不能访问: 内部类对象.getXxx();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值