我想知道为什么有时我会看到具有静态变量的代码?什么时候使用静态变量而不是“普通”变量更好?如果它的值不是从一个变化到另一个变化,使用最终变量不是更好吗?什么时候使用静态变量更好?
回答
使用静态变量的点与最终的点不一样。
最终声明的变量(静态或非静态)不能修改。它们通常用作“参考值”或常量。
因此需要静态变量(和方法)作为“共享内容”。例如,说办公室里的每个人都喜欢喝咖啡。我们每个人都带着自己的咖啡机好吗?还是我们更好地为整个办公室共用一台这样的机器?
显然你想选择共享选项。在编程习惯用法中,这将转化为Office
类中代表唯一CoffeeMachine
的static
变量。
题外话但肯定你不想让这台咖啡机final
。如果有人破坏它会怎样?您需要替换它,从而更改变量。
当只需要一个变量副本时使用静态变量。所以如果你在方法中声明变量没有使用这样的变量,它只会变成本地函数..
声明为静态的变量通常在类的所有实例中共享。
static表示该变量在该对象的所有实例中都是相同的。
主要的例子是一个对象计数器。
class foo{
private static int count = 0;
public foo()
{
count ++;
}
public static getCountOfObj()
{
return count;
}
}
因此,您可以在所有foo-Objects上对其进行编辑。
请不要使用对维基百科 –
的引用好吧,我删除它:) – Baum
我假设你的意思是静态字段。
static
字段与的类相关联,而实例字段被关联到一个对象(又名类实例)。
如果一个字段被标记为final
(适用于实例和静态字段),那么它不能被重新分配。
所以每个人都有自己不同的角色。
- 1. 什么时候使用静态变量和自我关键字
- 2. 什么时候全局静态常量变量被初始化?
- 3. 为什么静态变量不好?
- 4. 什么时候变得更好?
- 5. 什么时候不使用RelativeLayout更好?
- 6. 什么时候一个静态变量是真正初始化
- 7. 什么时候gae中的servlet静态变量?
- 8. Java - 为什么ClassName.this.variable在变量是静态的时候工作?
- 9. 什么时候静态变量得到垃圾回收?
- 10. 变量变量:什么时候有用?
- 11. 什么时候应该使用未初始化的静态最终变量?
- 12. 什么时候生成静态页面或动态生成更好?
- 13. 为什么这个静态变量有时候会在类中变成空吗?
- 14. 静态变量和静态变量的区别是什么?
- 15. 什么时候在PHP中使用变量变量?
- 16. 什么时候可以使用静态对象引用
- 17. 什么时候Docker变量可用?
- 18. 变量在什么时候变化?
- 19. 什么时候使用C#中的'静态方法'
- 20. 什么时候在PHP中使用静态类?
- 21. 什么时候在PHP中使用静态修饰符
- 22. 什么时候应该使用静态方法?
- 23. 你什么时候需要使用晚期静态绑定?
- 24. 什么时候应该使用公共静态方法
- 25. 什么是更好的:静态变量V.S. Asp.NET应用程序会话?
- 26. 什么时候我们应该去java中的静态类,变量和方法
- 27. 什么时候存储在内存中的本地静态变量?
- 28. 什么时候会话状态准备好在asp.net中使用
- 29. 什么时候最好加密一个变量?
- 30. 声明静态变量时的输出是什么?为什么?
这是相当意见的基础和广泛的你不觉得吗? –
当您在某个级别上有一些您需要的值时。例如,如果你有一些静态方法,那么你的值也需要是静态的。 –