知识大全 static内部类

Posted

篇首语:满堂花醉三千客,一剑霜寒十四洲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 static内部类相关的知识,希望对你有一定的参考价值。

  为正确理解static在应用于内部类时的含义 必须记住内部类的对象默认持有创建它的那个封装类的一个对象的句柄 然而 假如我们说一个内部类是static的 这种说法却是不成立的 static内部类意味着     ( ) 为创建一个static内部类的对象 我们不需要一个外部类对象     ( ) 不能从static内部类的一个对象中访问一个外部类对象     但在存在一些限制 由于static成员只能位于一个类的外部级别 所以内部类不可拥有static数据或static内部类     倘若为了创建内部类的对象而不需要创建外部类的一个对象 那么可将所有东西都设为static 为了能正常工作 同时也必须将内部类设为static 如下所示     //: Parcel java  // Static inner classes  package c parcel ;    abstract class Contents    abstract public int value();      interface Destination    String readLabel();      public class Parcel    private static class PContents    extends Contents     private int i = ;    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()中 我们不需要Parcel 的对象 相反 我们用常规的语法来选择一个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 命令) 可将这个类用于测试 但不需在自己的最终发行版本中包含它 cha138/Article/program/Java/hx/201311/27032

相关参考

知识大全 “类”常数分组

  由于置入一个接口的所有字段都自动具有static和final属性所以接口是对常数值进行分组的一个好工具它具有与C或C++的enum非常相似的效果如下例所示    //:Monthsjava  //

知识大全 Java内部类与匿名内部类

Java内部类与匿名内部类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  定义在类中方法之外的内

知识大全 谈谈c#中的static

  最近突然觉得自己对于static的概念有点模糊了所以就从网上搜集些资料又自己做了一些demo试验了一下下边将一些写的比较好的文章分享一下static关键字大家肯定是用的很多了说起来大家也都知道这有

知识大全 java的内部类与匿名内部类

  publicinterfaceContents  intvalue();    publicinterfaceDestination  StringreadLabel();    publiccl

知识大全 JAVA中使用内部类与匿名内部类实现

JAVA中使用内部类与匿名内部类实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA中对

知识大全 c# static的全部用法收集整理

   static的全部用法   要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我

知识大全 c#:static使用方法整理

  要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我们通常声明的不用static修饰的变量都是auto的因为它是默认的就象short和long

知识大全 将内部类进行到底

  总结了一下内部类的一下特性和容易出错的地方给大家看看~~  有什么错误望指正~~~    (一)  Java以后版本添加了嵌套类(InnerClass嵌套类内部类)嵌套类定义在类(外部类)里面  

知识大全 从内部类继承

  由于内部类构建器必须同封装类对象的一个句柄联系到一起所以从一个内部类继承的时候情况会稍微变得有些复杂这儿的问题是封装类的秘密句柄必须获得初始化而且在衍生类中不再有一个默认的对象可以连接解决这个问题

知识大全 Java中static用法简谈

Java中static用法简谈  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  请先看下面这段程序