日期:2011-03-22 16:17:00 来源:本站整理
<b>java的static内部类</b>[Java编程]
本文“<b>java的static内部类</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
为精确理解static在利用于内部类时的含义,必须记着内部类的对象默许持有成立它的那个封装类的一个对象的句柄.但是,假定我们说一个内部类是static的,这种说法倒是不成立的.static内部类意味着:
(1) 为成立一个static内部类的对象,我们不需求一个外部类对象.
(2) 不能从static内部类的一个对象中拜候一个外部类对象.
但在存在一些限制:由于static成员只能位于一个类的外部级别,所以内部类不可拥有static数据或static内部类.
假使为了成立内部类的对象而不需求成立外部类的一个对象,那么可将全部东西都设为static.为了能正常工作,同时也必须将内部类设为static.以下所示:
//: Parcel10.java // Static inner classes package c07.parcel10; abstract class Contents { abstract public int value(); } interface Destination { String readLabel(); } public class Parcel10 { private static class PContents extends Contents { private int i = 11; public int value() { return i; } } protected static class PDestination implements Destination { private String label; private PDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public static Destination dest(String s) { return new PDestination(s); } public static Contents cont() { return new PContents(); } public static void main(String[] args) { Contents c = cont(); Destination d = dest("Tanzania"); } } ///:~
在main()中,我们不需求Parcel10的对象;相反,我们用通例的语法来挑选一个static成员,以便调用将句柄返回Contents和Destination的办法.
普通,我们不在一个接口里设置任何代码,但static内部类可以成为接口的一部份.由于类是“静态”的,所以它不会违反接口的法则——static内部类只位于接口的命名空间内部:
在本书早些时刻,我倡议大家在每个类里都设置一个main(),将其作为那个类的测试床利用.这样做的一个缺陷就是额外代码的数目太多.若不肯如此,可考虑用一个static内部类包容自己的测试代码.以下所示://: IInterface.java // Static inner classes inside interfaces interface IInterface { static class Inner { int i, j, k; public Inner() {} void f() {} } } ///:~
这样便生成一个独立的、名为TestBed$Tester的类(为运路程序,请利用“java TestBed$Tester”号令).可将这个类用于测试,但不需在自己的终究发行版本中包含它.//: TestBed.java // Putting test code in a static inner class class TestBed { TestBed() {} void f() { System.out.println("f()"); } public static class Tester { public static void main(String[] args) { TestBed t = new TestBed(); t.f(); } } } ///:~
以上是“<b>java的static内部类</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论