오늘 나는 데이터로 가득 찬 파일에서 가장 저렴한 피자를 찾는 새로운 프로그램을 만들고 있습니다. 나는 완전히 하나의 문제에 붙어있어, 그것은 compareTo 메서드를 사용하고 있습니다. 내 리소스 클래스에서 만들었지 만 이중 참조가 취소 될 수 없다는 오류가 발생하지는 않습니다.이 문제를 보았지만 여전히 도움이되지 않았습니다. 나는 가장 진보 된 프로그래머가 아니며 다른 리소스에 대한 많은 복잡한 대답을 이해하지 못합니다. 프로그램의 내 사양은 다음과 같습니다.두 배로 compareTo 메서드 [더블 참조 할 수 없습니다.]
B. CheapPizza.java a. Objective - Pizza.java에 Comparable 인터페이스를 구현합니다. b. 할당 - 10 장에 복사 한 Pizza.java 파일을 사용하십시오. Comparable 인터페이스를 구현하고 compareTo() 메소드를 추가하십시오. 이 compareTo()는 을 사용하여 pizza.txt에서 가장 저렴한 피자를 찾는 데 도움이됩니다. Pizza.java의 새 버전을 테스트하기 위해 CheapPizza.java 클라이언트 클래스를 작성하십시오. CheapPizza는 파일에서 피자를 읽고 compareTo() 메서드를 사용하여 가장 저렴한 피자를 추적합니다. 가장 싼 피자를 보관할 피자 개체와 피자 개체 을 만들어 파일에서 피자를 읽습니다. compareTo()를 사용하여 가장 저렴한 피자와 피자를 파일에서 비교합니다. 파일에서 읽은 피자가 더 저렴한 경우 피자를 가장 저렴한 것으로 변경하십시오. a. 칠판에 pizzas.txt 파일을 입력하십시오. b. 출력 - 형식으로 정확히 표시해야한다은 다음과 같습니다 : 가장 싼 피자를 다음 compareTo 메소드 내 코드의 하단에위한 9 인치 올리브 피자 $ 7.99
코드를 비용, 누군가가 나에게 설명해주십시오 수 있습니다 내가 뭘 잘못하고 있니? 좋은 시간 보내 줘서 고마워! ~
public class Pizza {
private int size;
private double cost;
private String topping;
public Pizza(int s, double c, String t)
{
size = s;
cost = c;
topping = t;
}
public Pizza(String t, int s, double c) //.equals Method For Comparing Pizza for ''PizzaMatch''
{
topping = t;
size = s;
cost = c;
}
public Pizza()
{
size = 10;
cost = 9.00;
topping = "Cheese";
}
public String toString()
{
return String.format("%d inch %s pizza will cost $%.2f", size, topping, cost);
}
public int getSize()
{
return size;
}
public void setSize(int s)
{
size = s;
}
public double getCost()
{
return cost;
}
public void setCost(Double c)
{
cost = c;
}
public String getTopping()
{
return topping;
}
public void setTopping(String t)
{
topping = t;
}
public boolean equals(Object obj) //.equals Method For Comparing Pizza in "PizzaMatch"
{
if(!(obj instanceof Pizza))
throw new IllegalArgumentException("Parameter must be of Pizza!");
Pizza temp = (Pizza) obj;
if (this.topping.equals(temp.topping) && this.size == temp.size && this.cost == temp.cost)
return true;
else
return false;
}
//============================================================================================
public int compareTo(Object obj){
if(!(obj instanceof Pizza))
throw new IllegalArgumentException
("Parameter must be a Pizza");
Pizza temp = (Pizza) obj;
if (this.cost.compareTo(temp.cost) < 0) //this comes 1st
return -1;
else if(this.cost.compareTo(temp.cost) > 0) //temp comes 1st
return 1;
else //this and temp are equal
return 0;
}
}
'compareTo'는'double' 인 프리미티브와 함께 사용하지 마십시오. 직접 비교해보십시오. 'this.cost
GriffeyDog
정보를 제공해 주셔서 감사합니다. –