【发布时间】:2018-01-09 07:56:40
【问题描述】:
我同时学习 Java 和 C,当我尝试将这两种语言的一些共同特性联系起来时,我有时会有点困惑。我试图找出 Java 和 C 中“静态”用法的区别,希望有人能指出我的理解方式是否正确。我的逻辑有什么可以改进的吗(也想知道你如何区分这两种语言中“静态”的用法)?
所以在 C 中,当您希望某些特定变量只初始化一次时,使用“静态”。我认为仅此而已。
例如:
int main(void){
for(int i=0;i<=5;i++){
static int x=35; //x is only initialized once
x++;
printf("%d ",x); //"36 37 38 39 40 41 "will be printed out
}
x++; //This is not allowed as x is not a global variable.
return 0;
}
但在 Java 中,当您希望某些特定变量或方法可以通过保存变量或方法的类的名称而不是某些对象来访问或调用时,使用“静态”。而且我认为(通常,如果不总是?)您在驱动程序类中执行“ClassName.SomeVariables”或 ClassName.SomeMethods?
因此,“静态”在 C 和 Java 中的用法有很大不同吗?还有一个相关的问题:C 中的“静态”和 Java 中的特性如何实现?
提前致谢。 ^_^
【问题讨论】:
-
单词在不同的语言中有不同的含义,仅此而已。例如。 “放屁”在荷兰语中意为“速度”。
-
如果你认为你可以同时学习语言而不会感到困惑,那你就是在自找麻烦。
-
@Bathsheba - 想象一下外交事件 :)
-
“所以在 C 中,当你希望某些变量只初始化一次时,使用“静态”。我想就是这样。” - 不,这还不是全部。
static在 C 中还有更多内容。 -
将 Java 与 C++ 进行比较可能更有意义,其中静态的工作方式几乎相同。