2013-10-03 5 views
1

새로운 개체를 ArrayList에 추가하려고합니다. 각 항목 객체는 3 개 속성이됩니다ArrayList에 새 Object를 어떻게 추가합니까?

  1. 항목 클래스에 저장된 단일 항목을 정의

    1. itemNum이를
    2. 정보
    3. 내가 또한 3 개 수업을

    비용 목록.

  2. 카탈로그 클래스는 Item 개체의 목록을 유지 관리합니다.
  3. 클라이언트 클래스 w/main 메소드.

나는 세트가 있고 Item 클래스에 들어가며 Catalog에는 ArrayList가 있습니다. 클라이언트에는 개체를 추가, 제거 또는 편집 할 수있는 옵션이 있습니다. ArrayList에 새 Item 객체를 올바르게 추가하려면 어떻게합니까?

Catalog 클래스는 정상적으로 컴파일되지만 카탈로그 및 클라이언트 클래스는 컴파일되지 않습니다. 여기에 내가 카탈로그 클래스를 얻을 오류입니다 :

다음
Catalog.java:35: error: no suitable method found for add(int,String,double)listOfObjects.add(newItemId, newDescription, newCost); 
method ArrayList.add(int,Item) is not applicable 
(actual and formal argument lists differ in length) 
method ArrayList.add(Item) is not applicable 
(actual and formal argument lists differ in length) 

아래

Public class Item 
{ 
    private int itemNum; 
    private String info; 
    private double cost; 

    public Item() 
    { //start constructor 
    itemNum = 0; //default values 
    info = "x"; 
    cost = 0; 
    } //end constructor 

    public CatalogItem(int newItemNum, String newInfo, double newCost) 
    { //start overload constructor 
    this.itemNum = newItemNum; 
    this.info = newInfo; 
    this.cost = newCost; 
    } //end overload constructor 

가 설정되어 아이템 클래스에 대한 코드는가/itemNum이

에 대한 얻는다
 public int getItemNum() 
    { //start itemNum accessor 
    return itemNum; 
    } //end getItemNum 

    public void setItemNum(int newItemNum) 
    { //start itemNum mutator 
    this.itemNum = newItemNum; 
    } //end setItemNum 
} //end Item class 

는 // 아래에있는 내 카탈로그입니다 등급

belo w는 Client 클래스입니다. 항목과 관련하여 사용자로부터 입력 사항, 정보 및 비용을 수신합니다.

import java.util.*; //allows use of Scanner class 

public class Client 
{ //start client class 

    public static void main(String[] args) 
    { //start main 
    Catalog serv = new Catalog(); //creates instance of Catalog class 
    Scanner scan = new Scanner(System.in); //creates instance of Scanner class called scan 

    public void add(int itemNum, String info, double cost) //accepts parameters from main method to add to new object 
    { //start add 
    int newItemNum = itemNum; 
    String newInfo = info; 
    double newCost = cost; 

    newItem.setItemNum(newItemNum); 
    newItem.setInfo(newInfo); 
    newItem.setCost(newCost); 

    listOfObjects.add(newItemNum, newInfo, newCost); //adds the object to the ArrayList 

    } //end add 
} 

어떤 도움을 주시면 대단히 감사하겠습니다. 클래스 카탈로그에서

+0

을 : 당신이 당신의 클라이언트의 주요 방법에서 listOfObjects에 요소를 추가하려는 경우, 당신은 같은 것을 할 수 있습니다 그것을 보아라. – omainegra

답변

5

당신은 약간의 오차가 ...

는,이 라인이 정확하지 :

listOfObjects.add(newItemNum, newInfo, newCost); //adds the object to the ArrayList 

당신이 수행해야합니다

CatalogItem cat = new CatalogItem(newItemNum, newInfo, newCost); 
listOfObjects.add(cat); //adds the object to the ArrayList 

그리고 당신의 클래스 클라이언트에서

, newItem이나 listOfObjects에 대한 참조가 없으므로 해당 클래스에서 사용할 수 없습니다. ''하지만 난 할 수있는, 당신은 생성자`새로운 항목 (newItemNum, newInfo, newCost)를 사용하여 항목을 만들

public class Client { 
    public static void main(String[] args) { //start main 
     Catalog serv = new Catalog(); 
     ...... 
     serv.add(1, "", 1.0d); 
    } 
} 
+0

좋아요! 그게 많은 도움이 되었어요. –

관련 문제