如果不需要这种内部类对象和宿主类对象之间的联系,那么你可以把内部类定义成static的。这通常被称作嵌套类。要想理解static用于内部类时的意义,你就必须记住,普通的内部类对象都默认保存它的宿主类对象,也就是创建它的那个对象的reference。但是当你声明内部类是static的时候,情况就不是这样了。
嵌套类的意思是:1、无须宿主类的对象就能创建嵌套类的对象。2、不能在嵌套类的对象里面访问非static的宿主类对象。此外,嵌套类同普通的内部类还有一点不同。普通内部类的成员数据和方法只能到类的外围这一层,因此普通的内部类里不能有static数据,static数据成员或嵌套类。但是,这些东西嵌套类里都可以有。
在函数里面,这样的对象是没什么用的,相反,你得使用普通的,选择static成员的语句来调用会返回contents和Destination的reference的方法。普通的内部类需要使用特殊的this reference来与宿主类对象保存联系。而嵌套类不需要这个this reference,这就使得它与static方法有些相似了。通常情况下,interface里面是不能有任何代码的,但嵌套类却可以是interface的一部分。由于类的static的,因此这并不违反interface的规则——嵌套类只在接口的名字空间里。
- 评论:(0)
发表评论