java外部类调用内部类_java中的外部类和内部类 | 学步园

1.概念

外部类:这是一个相对内部类的概念,如果一个类中嵌套了另外一个类,我们就把这个类叫做外部类。

内部类:顾名思义,就是定义在里边的那个类。  见以下代码:

f2384e17e6b2930846357aeb783ea974.png

定义了一个类Outer,在Outer内中一定了私有成员变量x ,成员方法show()和一个内部类 Inner  ; Inner类和普通类一样也有一个成员变量 x 和成员方法 method

2.访问规则

1. 内部类可以直接访问外部类中的成员

2.外部类访问内部类有两种方式:

第一种方式: 在主函数中直接用创建内部类对象的方式 , 如  :  Outer out = new Outer();

Outer.Inner in = out.new Inner();

这种方式通常不会用到,不建议使用

第二种方式:   在外部类方法中创建内部类对象;

在主函数中创建外部类对象,直接调用外部类方法 。 见以下代码 :

613826c585672bb6371e436b637f87b9.png

3.访问内部类中的成员变量。

思考一个问题,上边的代码中,打印出来的 x 的值是几 ?

没错,是 6  . 再看看以下的代码

3cf0c749e7b3ce5bd4632a16d6777ef0.png

定义了一个局部变量, 问 现在打印的x 的值是多少了 ?

答案是 4 。

这说明了什么 ?

如果 x 前面什么都没有,那么内部类中方法访问的是局部变量 ; 如果没有局部变量的,就访问 类中的成员变量 x  .

再来看看以下的代码 : 继续思考 打印的x值会是多少

c26a722718e282f6dd3b5ccafa4d6ab5.png

这时候就变成 3 了 , 所如果要访问外部成员变量 要加上 Outer.this   。

注: 当然,就想Inner类中如果没有局部变量 x ,即使不加也无所谓程序打印的一样是 6 ,也就是说 如果没有局部变量x Inner类中也没有成员变量x ,这个时候即便 x 前边什么也不加访问的也是 外部的 x 值3 了  。 见代码所示 :

dcec14b9d284dd52fd1fd8c2662e9585.png

7a5ef674cbe971354bd5c529764242f5.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值