当前位置:七道奇文章资讯编程技术Java编程
日期: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内部类只位于接口的命名空间内部:
//: IInterface.java
// Static inner classes inside interfaces

interface IInterface {
  static class Inner {
    int i, j, k;
    public Inner() {}
    void f() {}
  }
} ///:~
在本书早些时刻,我倡议大家在每个类里都设置一个main(),将其作为那个类的测试床利用.这样做的一个缺陷就是额外代码的数目太多.若不肯如此,可考虑用一个static内部类包容自己的测试代码.以下所示:
//: 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();
    }
  }
} ///:~
这样便生成一个独立的、名为TestBed$Tester的类(为运路程序,请利用“java TestBed$Tester”号令).可将这个类用于测试,但不需在自己的终究发行版本中包含它.
  以上是“<b>java的static内部类</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .