成员内部类、局部内部类

1.成员内部类

在一个类中除了可以定义成员变量、成员方法外,还可以定义类,这样的类称为成员内部类。成员内部类可以访问外部类的所有成员。下面通过一个案例学习如何定义成员内部类,如文件1所示。

文件1:

在 文件1中,第1~26行代码定义了一个Outer类,Outer类是一个外部类。第8~18行代码在Outer类内部定义了Inner类,Inner类是Outer类的内部类。第12行代码在内部类的show1()方法中直接访问了外部的成员变量m。在第20~25行代码中,在外部类的test2()方法中实例化内部类对象inner,通过对象inner访问了内部类的成员变量n,并调用了内部类的方法show2()。第29~32行代码分别实例化了外部类对象outer和内部类对象inner,并通过对象inner调用了方法show1(),通过对象outer调用了方法test2()。

文件1运行结果:

如果想通过外部类访问内部类,则需要通过外部类创建内部类对象,创建内部类对象的具体语法格式如下:

外部类名.内部类名 变量名 = new 外部类名().new 内部类名(); 

2.局部内部类

局部内部类,也称为方法内部类,是指定义在某个局部范围中的类,它与局部变量一样,都是在方法中定义的,有效范围只限于方法内部。

在局部内部类中,局部内部类可以访问外部类的所有成员变量和方法,而局部内部类中变量和方法只能在所属方法中访问。下面通过一个案例学习局部内部类的定义和使用,如文件2所示。

文件2:

 在文件2中,第1~21行代码定义了一个外部类Outer,并在该类中定义了成员变量m、成员方法test1()和test2()。第9~15行代码是在外部类的成员方法test2()中定义了一个局部内部类Inner;然后在局部内部类Inner中,编写了show()方法。第13~14行代码是对外部类变量和方法的调用;第17~19行代码是在test2()方法中创建了局部内部类Inner对象,并调用局部内部类的方法和变量。

文件2运行结果:结合文件2和文件2运行结果可以看出,在局部内部类Inner的show()方法中可以访问到外部成员变量m和外部成员方法test1(),而在外部访问不到 局部内部类Inner中的变量和方法。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值