什么是Java的嵌套类-计算机二级考试笔记

发布于 2018-02-01 14:33  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

嵌套类

这里的嵌套类只在一个Outside型对象范围内才有意义,这是因为Inside没有声明为Outside类的静态成员。在建立一个Outside型对象以前,你不能建立任何的Inside对象。然而,当你声明一个包含嵌套类的类对象时,不需要建立嵌套类的对象,当然,被类的构造函数建立的对象除外。例如,假设我们用下列语句建立一个对象:

Outside outer-new outside()


没有建立嵌套类的对象Inside.如果你现在希望建立一个嵌套类的对象,就必须使用一个作为限定词的类的名字引用嵌套类。例如,己经声明了一个Outside类的对象,我们可以用下列语句建立一个Inside型的对象:

Outside.Inside inner=outer.new.Inside(); //Define a nested class object


这里我们己经建立了一个嵌套类的对象,它与我们前面建立的anter对象相关联。我们正是在outer对象的范围内建立一个Inside型的对象。

在Outside的非静态成员方法中,你可以使用Inside类名,而不需要任何限定,它将由编译器使用this变量自动地加以限定。所以我们可以在对象Outside的方法内建立新的Inside对象:

Inside inner=new Inside( ); //Define a nested class object


它等价于:

this.Inside inner=this.new Inside(); //Define a nested class object

所有这些暗示了一个静态方法不能建立一个非静态嵌套的类对象。因为Inside类不是Qutside类的静态成员,如果在Outside对象的范围内没有己存在的Inside对象,则引用一个不存在的对象将是错误的。由于Inside不是Outside类的一个静态数据成员,如果Outside类中的一个静态方法试图直接地建立一个Lnside型的对象,而开始并不存在一个Outside型的对象,这种尝试在一个对象的合法范围外建立对象的操作将是非法的。

还有,因为类Inside不是一个Qutside类的静态成员,所以它不能依次返回它自己包含的任何静态数据成员。由于Ir}ide本身不是静态的,所以它不能用静态成员充当一个自由稳定的类,这存在着逻辑上的矛盾。

嵌套类通常用来定义至少与包含它的类的对象有密切关联的对象,并且在两个类之间经常存在着紧密的结合。








考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看



本文网址:http://www.k51.com.cn/info/jsjdjks/1802/0126296.html
选择分享到: