Java中的实例内部类

一:实例内部类与实例变量类似,可以声明为公有级别,私有级别或保护级别,即4种访问级别都可以,而外部类只能声明公有或默认级别。
实例内部类示例代码如下:
在这里插入图片描述

   上述代码第①行声明了内部类Inner,它的访问级别是默认,这里可以是public,private和protected。内部类Inner有一个成员变量x和成员方法display().在display()方法中代码第④行是访问外部类的x成员变量,代码第⑤行和第⑥行一样都是访问内部类的x成员变量。代码第⑦行和第⑧行都是访问外部类的print()成员变方法。
  提示:在内部类中this是引用当前内部类对象,见代码第⑤行,而要引用外部类对象需要使用“外部类名.this”,见代码第④行。如果内部类和外部类它们的成员命名 没有冲突情况下,在引用外部类成员时可以不用加“外部类名.this”,如代码第⑧行的print()方法只有外部类中定义,所以可以省略Outer.this.

  测试内部HelloWorld代码如下:

在这里插入图片描述

运行结果如下:
在这里插入图片描述

  通常情况下,使用实例成员内部类不是给外部类之外调用使用的,而就是给外部类自己使用的。但是 一定要在外部类的之外访问内部类,Java语言也是支持的,见代码第②行内部类的类型表示“外部类.内 部类”,实例化过程是先实例化外部类,再实例化内部类,outer对象是外部类实例,outer.new Inner()表 达式实例化内部类对象。 另外,HelloWorld与内部类Inner在同一个包中,内部类Inner和它的方法 display()访问级别都是默认的,它们对于在同一包中HelloWorld是可见的。 

提示:内部类编译成功后生成的字节码文件是“外部类$内部类.class”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值