Java中是否有与static相同的关键字?

时间:2016-08-23 00:18:48

标签: java static

我知道在C中,当关键字static用于局部变量时,它会导致该变量在函数调用之间保持初始化(即当变量超出范围时)。例如:

int myFunction() {
  static int i = 3;
  i++;
  return i;
}

如果myFunction()被调用两次,它将第一次返回4,第二次返回5(因为i在两次调用之间保持其值,而不是第二次重新初始化。)

我的问题是:Java在C中是否有与static相同的关键字? Java也有关键字static,但它的使用方式与C语言完全不同。

5 个答案:

答案 0 :(得分:4)

不完全是,但private static类级变量几乎会做同样的事情。

但是

  • 它也可以在课程的所有其他方法中看到

  • 它将在第一次方法调用时初始化,但是在加载类本身时

我认为这是可行的。

答案 1 :(得分:3)

方法中的所有变量都是函数的本地变量并放在堆栈中。您最接近的是类中的静态变量。

如果你将变量设为私有并将方法放在它自己的类中,你将获得大致相同的结果。 (使用私有构造函数)

答案 2 :(得分:0)

它与private关键字有些相似,因为在C中,静态全局变量或函数仅在其声明的文件中可见...

这可能是你找到的最接近的地方:)。

答案 3 :(得分:-2)

不,因为所有方法和函数都绑定到Java中的类,所以没有"全局空间"与C中的一样.Java中的static关键字具有不同的语义。

有关差异的详细信息,请参阅docs for staticthis post

答案 4 :(得分:-2)

Java以不同的方式使用static。要在此处获得相同的结果,您应该使用private字段。