在我的 for 循环结束时,我想打印出数组中的所有对象。我使用了来自 Source 的带有字符串生成器的生成 toString,但是,在循环完成执行后,它会打印出变量 Item 的默认值:
[Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0], Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0] , Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0], Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0] , Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0], Item [getPrice()=0.0, getName()=No Name yet., getPriority()=-1.0] , 空值]
这是我的代码
  public class Item {
static Item list[]=new Item [7];
public static  int x = 0;
public static  String setName;
public static double setPrice;
public static int setPrioirty;
private  int priority=-1;
private double price;
private String name;
Item(){
    priority=-1;
    price=0;
    name="No Name yet.";
}// default constructor. 
public Item(int i, double j, String k) {
    setItem(i,j,k);                         //constructor with 3 arguments. 
}
public void setItem (int i, double j, String k){    // setting item with 3 attributes.
    setPriority(i);
    setPrice(j);
    setName(k); 
}
public void setName(String k) { //setting individual attributes in item.
    // TODO Auto-generated method stub //page 378
    name=k;
}
public void setPrice(double j) {//setting individual attributes in item.
    // TODO Auto-generated method stub
    if (j<0||j>100){
        System.out.println("Error: price is too low or high");
    }
    else
        price=j;
    }
public void setPriority(int i) {//setting individual attributes in item.
    // TODO Auto-generated method stub
    priority =((i>=0&&i<7)?i:0);
}
public double getPrice(){
    return price;
}
public String getName(){
    return name;
}
public double getPriority(){
    return priority;
}
 public static void add(Item itemObject) {
    if (x<7)
    {
        list[x]=itemObject;
    System.out.println("Item added at index " + x);
    x++;
    }
 }
@Override
public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("Item [getPrice()=").append(getPrice()).append(", ");
    if (getName() != null)
        builder.append("getName()=").append(getName()).append(", ");
    builder.append("getPriority()=").append(getPriority()).append("]");
    return builder.toString();
}
   }
主要的
       import java.util.Arrays;
       import java.util.Scanner;
       import java.util.Set;
     public class homework3main extends Item {
@SuppressWarnings("static-access")
public static void main(String[] args) {
    //item list[]=new item [7]; // array of objects
    Scanner keyboard= new Scanner(System.in);
    for(int x=1; x<7;x++){
        Item itemObject=new Item ();
        //Item itemObject=new Item (setPrioirty,setPrice,setName);
        //creating new object with 3 variables, name, price, priority
        //list[x]=new Item();// is this right?
        System.out.println("Enter an item you want to add to your list "+ x);
        list[x].setName=keyboard.next();
        System.out.println("Enter a price "+x);
        list[x].setPrice=keyboard.nextDouble();
        System.out.println("Enter the priority of the item "+x);
        list[x].setPrioirty=keyboard.nextInt();
        //item itemObject=new item (setPrioirty,setPrice,setName);
        list[x].add(itemObject);
    }   
    System.out.println(Arrays.toString(list));
我的条件语句在我的 Set 方法中也不起作用。无法理解为什么这些不起作用,它们非常简单。