【问题标题】:What is significance of static keyword in Java and in C++?Java和C++中static关键字的意义是什么?
【发布时间】:2009-10-24 04:45:42
【问题描述】:

Static 关键字在 Java 和 C++ 中的重要性以及它在两种编程语言中的功能有何不同?

【问题讨论】:

  • 这是与stackoverflow.com/questions/413898/…的部分重复
  • 因为即使是少量的努力搜索也会在几秒钟内找到答案。
  • 反过来,您应该更信任java.sun.com(针对 Java 问题)而不是 Stack Overflow。当文档中的某些内容难以理解时,请带着您的问题来 Stack Overflow。否则,看起来你完全没有付出任何努力。

标签: static oop language-features keyword


【解决方案1】:

也许这个链接会给你一个更好的主意:http://www.pp.rhul.ac.uk/~george/PH2150/html/node48.html

它有一个直观的图表,可能更容易理解。

【讨论】:

    【解决方案2】:

    静态有两种含义。第一个如果你有一个静态变量,这意味着这个变量只有一个实例。在所有带有关键字的编程语言中,它的工作原理几乎相同。

    静态函数是可以调用的函数,即使它所在的类没有被实例化。静态函数在 C# 和 Java 中是必需的,因为您不能在这些没有包含类的语言中声明函数。

    在 C++ 中,您可以在全局命名空间中声明函数。在这种语言中,静态函数用于表示一个函数属于该类,但您不必实例化该类即可使用该函数。您可以使用静态函数来访问类的私有变量。另请注意,在 C++ 中,静态函数具有已知的内存地址,因此您可以使用函数指针指向它们而无需实例化类。

    【讨论】:

      【解决方案3】:

      对于 Java,Understanding Instance and Class Members 是一个不错的起点。

      对于 C++,微软有一个reference on the static keyword

      有许多现成的编程语言资源可以帮助您理解static 关键字的含义。以上是我通过 Google 快速搜索找到的其中两个。

      【讨论】:

        【解决方案4】:

        对只能有一个实例的字段和方法使用静态。这意味着它们与类的实例无关,而是与类本身相关。例如主线程(public static void main)。

        【讨论】:

          【解决方案5】:

          这两种语言的工作方式相同。我假设您知道什么是面向对象编程,以及类和对象/实例之间的区别。因此,如果您将方法或变量标记为“静态”,则它在类级别而不是实例级别上运行。所有对象/实例共享相同的“静态”变量值。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-16
            • 2011-06-04
            • 2011-03-10
            • 2012-09-29
            • 2014-09-24
            • 1970-01-01
            相关资源
            最近更新 更多