Java基础知识学习笔记——嵌套类(Nested Classes)

Java语言允许在A类内部定义一个B类,我们就把这个B类称为嵌套类(Nested Classes)。

嵌套类分为两种:一种为静态嵌套类(Static Nested Classes),另一种是非静态嵌套类(Non-static Nested Classes),也就是我们常说的“内部类(Inner Classes)”。

嵌套类的定义形式:

public class OuterClass{

......

<public / protected/ private><static> NestedClass{

  ......

}

为何我们要用嵌套类?总结以下两点:

1、如果A类仅仅在为B类提供方便,我们就把A类定义为B类的一个内部类,这样逻辑上将类与类之间的关系紧密联系起来了,有利于代码的维护;

2、充分表现了面向对象程序设计的封装性特点,如果我们将A类定义为B类的内部类,那么可以达到如下效果:A类不但可以访问B类的成员或方法(甚至私有成员都可以访问),而且对于同一个包中其他类来说,内部类能够很好地隐藏起来。

注意事项:

1、内部类在事件处理方面应用广泛,可以非常方便地编写事件驱动程序,而不用写很多代码。


一、静态嵌套类(Static Nested Classes)

静态嵌套类不能访问外部类的成员变量和成员方法。

可以使用以下形式访问静态嵌套类:OutClass.StaticNestedClass ;

可以使用以下方式为静态嵌套类创建一个实例:OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();

二、’内部类(Inner Classes)

内部类有三种:成员内部类、局部内部类和匿名内部类。

内部类作为外部类的成员,它可以直接访问外部类的所有变量和方法。但是,由于内部类与实例相关联,所以不能定义静态变量或静态方法。

创建内部类的实例:OuterClass.InnerClass innerObject = outerObject.new InnerClass();


成员内部类:它就如同外部类的成员变量和成员方法,在外部类体中定义的内部类,是外部类的一个成员类。

局部内部类:在方法体中定义的内部类,称为局部内部类。

public void method(){

NestedClass{

  ......

....

}

注:局部内部类,在定义的时候,不能用修饰符。

匿名内部类:在方法体中定义的没有类名的内部类,我们称之为匿名内部类。


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值