Java和C ++中static关键字的意义何在?

时间:2009-10-24 04:45:43

标签: static oop language-features keyword

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

5 个答案:

答案 0 :(得分:3)

也许此链接会为您提供更好的主意:http://www.pp.rhul.ac.uk/~george/PH2150/html/node48.html

它有一个可视化图表,可以让它更容易理解。

答案 1 :(得分:2)

静态有两个含义。第一个如果你有一个静态变量,这意味着这个变量只有一个实例。它在所有使用关键字的编程语言中的工作方式基本相同。

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

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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