`

[#0x0015] static内部类(i.e. 嵌套类)

    博客分类:
  • Java
 
阅读更多

  一般的内部类是不能有static (data/field/function)的,因为普通的内部类必须创建对象,不需要有static只属于内部类本身,所以static对普通内部类来说是没有意义也是不允许的。同样,嵌套类也是static,所以一般的内部类中也不能有嵌套类。

  嵌套类可以有static,由于嵌套类对象的创建不需要外部类对象,所以嵌套类是无法通过Outer.this来连接到外部类对象的。所以根据[0x0012]中关于内部类访问访问外部类field和function的说明,在嵌套类中要访问外部类的field和function应该避免重名的现象发生。

  static内部类表示这个内部类的定义是属于外部类的,但是static内部类的对象是可以有多个的,且可以直接创建。

  接口中允许有内部类存在,且接口中的内部类默认为public + static。接口中的内部类可以实现这个接口本身。如果想要为接口创建公用代码,使得接口的不同实现都能使用这些代码,可以使用接口中的内部类。

  还有,可以使用嵌套类来放置外部类的main测试方法。

分享到:
评论

相关推荐

    Google C++ Style Guide(谷歌C++编码规范 )

    - **Nonmember, Static Member, and Global Functions**:非成员函数通常用于实现与特定类无关的功能;静态成员函数可以在不实例化对象的情况下调用;全局函数应当尽量避免使用,因为它们可能带来命名冲突。 - **...

    java模拟题

    1. **成员访问权限**:题目通过一个具体的类`A`及其中嵌套的类`B`和`C`来考察成员访问权限。在Java中,成员的访问控制分为四种:`public`、`protected`、`private`以及默认(包访问权限)。 - `public`:允许任何...

    C语言笔试面试试题大汇总

    - **函数内部静态变量的作用范围**:`static` 变量仅在其定义的函数内部可见。 - **外部变量与内部静态变量的区别**:外部变量可以在多个源文件中访问,而 `static` 定义的变量只能在其定义的源文件内访问。 #### 2...

    MT4智能交易系统编程语言语法规则

    0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7 ``` - 取值范围:`-2147483648`到`2147483647`。 ##### 2. 布尔型(Boolean) - 用于表示逻辑真或假。 - 可以用`true`或`false`表示,不区分大小写。 - 示例: ```...

    邯郸学院单片机题库.docx

    例如,提示符“E”的七段代码值为86H,而大写字母“C”的七段代码值为c6H。 - 在共阴极LED显示中,所有的阴极(负极)连接在一起,通过控制阳极(正极)来点亮不同的段。例如,提示符“P”的七段代码值为73H,数字...

    整理的keil51仿真错误

    这类错误通常表明编译过程中出现了不可恢复的问题,导致编译无法继续。错误消息通常包含发生错误的位置(文件名和行号)以及错误的具体描述。例如: - **ACTION:** 当前执行的动作。 - **LINE:** 出错的代码行。 - ...

    2021-2022计算机二级等级考试试题及答案No.15336.docx

    `private`、`static`和`protected`等修饰符不能直接用于类的定义。 #### 13. DOS命令 - **知识点**: DOS操作系统下的常用命令及其功能。 - **解析**: 组合命令`COPY A:*.* B:` 和 `DISKCOPY A: B:`均实现从A盘复制...

    外汇mt4编程参考资料,适合一切研究MT4编程人员

    | 存储类 | `extern`, `static` | | 操作符 | `break`, `case`, `continue`, `default`, `else`, `for`, `if`, `return`, `switch`, `while` | | 其他 | `false`, `true` | #### 三、数据类型详解 数据类型是...

    你必须知道的495个C语言问题(PDF)

    4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static int dummy = 5; ip = &dummy;g 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。. . . . . . . . . . . . . . . 18 4.5 我...

    单片机C语言Proteus仿真实例100000秒以内的计时程序

    2. **中断管理**:妥善管理中断优先级,避免中断嵌套导致的问题。 3. **程序优化**:对于长时间运行的程序,应注意优化内存使用和代码结构,提高程序的稳定性和效率。 通过以上介绍,我们不仅了解了单片机C语言编程...

    google c++ style guide PDF版(带目录及标签目录)

    ##### 3.2 嵌套类 - **定义**: 在其他类、结构体或枚举中定义的类。 - **使用**: 当一个类只在另一个类的上下文中使用时。 ##### 3.3 非成员静态成员和全局函数 - **规则**: 尽量避免使用全局变量和函数;若必须...

    红外发射C语言51单片机程序

    该函数通过嵌套循环实现延时,用于确保信号的正确发射间隔。 ### 三、总结 本段代码实现了一个简单的红外发射功能,通过51单片机定时器产生的定时中断来控制红外信号的发送。程序首先初始化了必要的硬件资源,然后...

    java笔试题

    内部类是在另一个类内部定义的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类与外部类之间没有实例关联,可以独立存在,而内嵌类(Inner Class)需要外部类实例才能创建。 ...

    C#程序源代码

    if ((sieve >> i & 0x01) != 0) Console.Write("{0,3}", p); // 输出当前质数 p += 2; } Console.WriteLine(); Console.Read(); } } ``` - **实验2-3:根据公式编程计算π的值**,直至所加项小于1E-10...

    Google C++编程规范中文版

    - **类嵌套 (Nested Classes):** 嵌套类可以帮助组织相关的类结构,但在使用时需谨慎,因为它们可能会导致代码难以理解和维护。Google建议仅在确实必要的时候使用嵌套类。 - **外部函数、静态成员函数和全局函数 ...

    Google对外发布C++编码规范

    - **Preincrement and Predecrement**:前缀递增(++i)和前缀递减(--i)比后缀形式(i++、i--)更高效。 - **Use of const**:const关键字用于指示某个变量或对象在其生命周期内不可修改,有助于提高代码的安全性...

    STM8单次转换模式AD和带缓存连续模式嵌套中断AD例程

    本文将详细介绍STM8单次转换模式AD和带缓存连续模式嵌套中断AD的实现方法。 **单次转换模式AD** 在单次转换模式下,ADC只会执行一次转换,并在完成之后停止。这种模式通常用于那些只需要偶尔进行一次AD转换的场景。...

    2020-2021大学《C语言程序设计》课程考试试卷(含答案).pdf

    4. **函数声明与定义**:函数的可见性分为内部(static)和外部(extern)。内部函数只能在定义它的文件中使用,外部函数可以在多个文件间共享。 5. **字符串处理**:`printf("%s", *(st+1)+1)`将打印字符串数组中第...

Global site tag (gtag.js) - Google Analytics