Несколько объектов переопределяют данные предыдущих объектов - PullRequest
0 голосов
/ 12 февраля 2020

Когда я создаю несколько объектов, более новые объекты переопределяют свойства более старых объектов, например:

object1.color = red;
object2.color = yellow;
object3.color = green;
object4.color = blue;

Если я попытаюсь вернуть object1.color, то он вернет синий. Есть ли способ обойти это? Мне сказали, что единственный способ сделать это - каждый раз заново устанавливать значение.

1 Ответ

0 голосов
/ 12 февраля 2020

Как правило, вы не столкнулись бы с этой проблемой, если бы мы не говорили о полях класса c: поля

public class Program
{

  public static void main(String[] args)
  {
    Foo object1 = new Foo();
    Foo object2 = new Foo();

    object1.instanceColor = "red";
    object2.instanceColor = "green";

    object1.staticColor = "red";
    object2.staticColor = "green";

    System.out.println(object1.staticColor);
    System.out.println(object2.staticColor);
    // output is "green green"

    System.out.println(object1.instanceColor);
    System.out.println(object2.instanceColor);
    // output is "red green"
  }
}


public class Foo
{
  public static String staticColor;
  public String instanceColor;

  public Foo() {}
}

Стати c действительно были бы общими для всех экземпляров класса.

Однако поля экземпляров принадлежат экземплярам и не влияют друг на друга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...