如何控制多个对象的属性?

时间:2015-01-26 04:16:46

标签: java oop properties constructor reference

我正在使用OOP进行课堂作业,而且我还在学习基础知识,并且我开始询问在有多个对象时如何引用对象的属性。

public class Shirts
{
  private static int shirtSize;
  private static boolean sleeves;
  private static String color;
  private static String pattern;
  private static double price;

  public Shirts(int size, boolean sleeve, String hue, String design, double cost){
    shirtSize = size;
    sleeves = sleeve;
    color = hue;
    pattern = design;
    price = cost;
  }

我的问题是,如果我创建第二个对象,我就不能再引用第一个对象的属性了,因为一旦创建了第二个对象,Shirts类中的所有变量都被赋予 new 价值。

Shirts testA = new Shirts(10,true,"green","stripes",35.00);
Shirts testB = new Shirts(11,false,"orange","plain",33.00);

有没有快速解决这个问题?

4 个答案:

答案 0 :(得分:4)

static类中的字段中删除Shirts关键字。

答案 1 :(得分:1)

Static是一个类成员。所以静态将在类级别上工作。通过删除静态,您将解决您的问题。

Good reference关于'静态'通过oracle

答案 2 :(得分:0)

如果将变量定义为 static ,则该类的所有实例共享相同的值。因此,所有实例都共享静态字段。删除 static 关键字并将它们设为实例级字段,以便它们对每个实例都是唯一的。

答案 3 :(得分:0)

请记住,static修饰符表示该属性属于该类,而不属于该实例!因此,所有实例(调用构造函数时获得的实例)将共享静态属性的相同值。

我希望这个答案有助于理解错误,不仅让这次工作有效。