【问题标题】:Java ArrayList ClassJava ArrayList 类
【发布时间】:2014-06-13 05:27:03
【问题描述】:

我启动了这段代码,但我不知道如何完成它。我需要为 SalesPeople 及其数据的集合创建类和测试驱动程序。我创建了销售人员类和构造函数。我创建了访问器和修改器。我需要帮助将其组合成我的测试驱动程序的 arrayList 类。请帮助(:

import java.util.*;
 public class salesPerson {

   //salesPerson fields
   private int salespersonID;
   private String salespersonName;
   private String productType;
   private int unitsSold = 0;
   private double unitPrice;

   //Constructor method
   public salesPerson(int salespersonID, String salespersonName, String productType, int unitsSold, double unitPrice)
   {
     this.salespersonID = salespersonID;
     this.salespersonName = salespersonName;
     this.productType = productType;
     this.unitsSold = unitsSold;
     this.unitPrice = unitPrice;
   }


   //Accessor for salesPerson
   public int getSalesPersonID(){
       return salespersonID;
    }

   public String getSalesPersonName(){
       return salespersonName;
   }

   public String getProductType(){
       return productType;
    }

   public int getUnitsSold(){
       return unitsSold;
    }

   public double getUnitPrice(){
       return unitPrice;
    }

   public double getTotalSold(){
        return unitsSold * unitPrice;
    }

   //Mutoators for salesPerson
   public void setSalesPersonID(int salespersonID){
       this.salespersonID = salespersonID;
   }

   public void setSalesPersonName(String salespersonName) {
       this.salespersonName = salespersonName;
    }

   public void setProductType(String productType){
       this.productType = productType;
    }

   public void setUnitsSold(int unitsSold){
       this.unitsSold += unitsSold;
    }

   public void setUnitProce(double unitPrice){
       this.unitPrice = unitPrice;
    }

        public static void main(String[] args)
    {
        ArrayList<salesPerson> salesPeople = new ArrayList<salesPerson>();
        Scanner userInput = new Scanner(System.in);
        boolean newRecord = true;
        int salespersonID;
        String salespersonName;
        String productType;
        int unitsSold = 0;
        double unitPrice;

        do{
            System.out.println("Please enter the Salesperson Inoformation.");
            System.out.print("Salesperson ID: ");
            salespersonID = userInput.nextInt();

            System.out.print("Salesperson Name: ");
            salespersonName = userInput.next();
            System.out.print("Product Type: ");
            productType = userInput.next();
            System.out.print("Units Sold: ");
            unitsSold = userInput.nextInt();
            System.out.print("Unit Price: ");
            unitPrice = userInput.nextDouble();



            System.out.print("Would you like to enter more data?(y/n)");
            String askNew = userInput.next();
            newRecord = (askNew.toLowerCase().equals("y")) ? true : false;

        }while(newRecord == true);

    }

 }

【问题讨论】:

  • 创建salesPersonadd类的对象到arraylist

标签: java arrays object arraylist


【解决方案1】:

您已经创建了一个名为 salesPeople 的变量。 在获取用户的所有输入后,创建一个 SalesPerson 的新对象,并在 while 循环的末尾添加到 salesPeople。 查看下面的代码以获得更清晰的信息。

.....
SalesPerson tmp = new SalesPerson(salespersonID, salespersonName, productType, unitsSold, unitPrice);
salesPeople.add(tmp);

}while (newRecord == true)
....

【讨论】:

    【解决方案2】:

    获得所有数据后,将其放入 do-while-loop 中。您需要在获得数据后创建每个销售人员,否则值(id、名称...)将在下一次循环迭代中丢失并被覆盖

    salesPeople.add(new SalesPerson(salespersonID, salespersonName, productType, unitsSold, unitPrice));
    

    【讨论】:

      【解决方案3】:

      因为数组列表 salesPeople 需要 salesPerson 的对象,所以您首先要创建一个 salesPerson 对象,然后将 salesPerson 添加到 salesPeople 数组列表中。

      salesPerson sp = new salesPerson(salespersonID, salespersonName, productType, unitsSold, unitPrice);
      salesPeople.add(sp);
      

      在你问他们是否要创建一个新的销售人员之前,把它放在你做的最后。

      【讨论】:

        【解决方案4】:

        在下面的行之前添加 2 行(创建 sp 对象并将其添加到列表)的末尾

        System.out.print("Would you like to enter more data?(y/n)");
        
        SalesPerson sp = new SalesPerson(salespersonID, salespersonName, productType, unitsSold, unitPrice);
        salesPeople.add(sp);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-10
          相关资源
          最近更新 更多