我正在使用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);
有没有快速解决这个问题?
答案 0 :(得分:4)
从static
类中的字段中删除Shirts
关键字。
答案 1 :(得分:1)
Static是一个类成员。所以静态将在类级别上工作。通过删除静态,您将解决您的问题。
Good reference关于'静态'通过oracle
答案 2 :(得分:0)
如果将变量定义为 static ,则该类的所有实例共享相同的值。因此,所有实例都共享静态字段。删除 static 关键字并将它们设为实例级字段,以便它们对每个实例都是唯一的。
答案 3 :(得分:0)
请记住,static
修饰符表示该属性属于该类,而不属于该实例!因此,所有实例(调用构造函数时获得的实例)将共享静态属性的相同值。
我希望这个答案有助于理解错误,不仅让这次工作有效。