【问题标题】:Why does value of the variable changes for all objects [closed]为什么所有对象的变量值都会发生变化[关闭]
【发布时间】:2013-11-13 15:21:54
【问题描述】:

我有一个班级和年龄字段。但是,当我更改对象的年龄时,该类的所有其他对象也会更改。

private static int age;

谁能帮忙解决这个问题?

【问题讨论】:

  • static 在这种情况下是什么意思?
  • 它是静态的。这意味着它不属于一个对象,而是属于整个类。去掉 static 关键字
  • static 是类级别的字段,我认为您正在寻找非静态字段。
  • 您的age 只有一个实例,因此没有任何多个副本可以使其不同。

标签: java


【解决方案1】:

静态变量类变量,所以,从变量声明中删除static

private int age;

根据 java 文档:

在声明中带有 static 修饰符的字段称为静态字段或类变量。它们与类相关联,而不是与任何对象相关联。类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。

【讨论】:

    【解决方案2】:

    用途:

    private int age;
    

    静态变量在所有实例之间共享。

    【讨论】:

      【解决方案3】:

      静态成员属于整个类,所以如果你改变它,所有的实例都会受到影响。

      使用

      private int age; // without static.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-25
        • 2013-01-18
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多