我对Java是个新手,最近我学习了静态变量。我知道对于一个静态变量,内存只分配一次。这意味着它将节省大量的memory.My问题是,如果静态变量节省内存,为什么不将每个变量都声明为静态变量。这将在创建应用程序时节省大量内存。如果这看起来是一个愚蠢的问题,请原谅,但实际上我只是有点好奇。
发布于 2016-05-07 17:15:11
这是面向对象编程的基础知识。看一个例子:
class Person {
    public String name = "Foo";
}字段name不是静态的,这意味着类Person的对象不会共享它,每个人都有自己的名字。当你改变一个人的名字时,其他人不会受到影响。但是如果你把它设为静态的:
class Person {
    public static String name = "Foo";
}这意味着,所有的人都有相同的名字,这有点奇怪,你同意吗?)
发布于 2016-05-07 17:14:12
创建属性/变量的要点是,您希望它们作为对象的一个“特性”。例如,如果你有一个类" car ",也许你想要一个变量来引用汽车的颜色。
问题是,"Car“的每个实例(在现实世界中是每个不同的汽车)都有一个值,因此每个实例都必须是一个”独立“变量。
对于那些由该类的所有对象共享的变量,可以使用静态变量。例如,一个计数器来确定有多少辆车。这个变量属于名为"Car“的类,但不属于该类的任何特定实例。
发布于 2016-05-07 17:16:32
静态变量是按类级别创建的。它不是在创建类的对象时创建的。对于类的每个实例或对象,静态成员变量只有一个值。这违背了拥有对象和围绕对象创建应用程序的目的。
https://stackoverflow.com/questions/37086644
复制相似问题