[Java] 공부중 책에 있는 예제를 실행했더니 오류가 납니다. java.lang.NoSuchMethodError
조회수 622회
아래가 책에 있는 코드를 그대로 옮긴 코드입니다.
----------------------------------아래--------------------------------------
class FruitSeller {
int numOfApple;
int myMoney;
int APPLE_PRICE;
public int saleApple(int money) {
int num = money / APPLE_PRICE;
numOfApple -= num;
myMoney += money;
return num;
}
public void showSaleResult() {
System.out.println("남은 사과 : " + numOfApple);
System.out.println("판매 수익 : " + myMoney);
}
public void initMembers(int money, int appleNum, int price) {
myMoney = money;
numOfApple = appleNum;
APPLE_PRICE = price;
}
}
class FruitBuyer {
int myMoney = 10000;
int numOfApple = 0;
public void buyApple(FruitSeller seller, int money) {
numOfApple += seller.saleApple(money);
myMoney -= money;
}
public void showBuyResult() {
System.out.println("현재 잔액 : " + myMoney);
System.out.println("사과 갯수 : " + numOfApple);
}
}
class FruitSalesMain2 {
public static void main(String[] args) {
FruitSeller seller1 = new FruitSeller();
seller1.initMembers(0, 30, 1500);
FruitSeller seller2 = new FruitSeller();
seller2.initMembers(0, 20, 1000);
FruitBuyer buyer = new FruitBuyer();
buyer.buyApple(seller1, 4500);
buyer.buyApple(seller2, 2000);
System.out.println("과일 판매자1의 현재 상황");
seller1.showSaleResult();
System.out.println("과일 판매자2의 현재 상황");
seller2.showSaleResult();
System.out.println("과일 구매자의 현재 상황");
buyer.showBuyResult();
}
}
이클립스로 실행시
Exception in thread "main" java.lang.NoSuchMethodError: chapter07.FruitSeller.initMembers(III)V
at chapter07.FruitSalesMain2.main(FruitSalesMain2.java:46)
라는 오류가 뜨며 실행되지 않습니다. 검색해보니 이 에러는 main 메소드에 문제가 있을때 나오는 에러라는데 무슨 문제인지 알지 못하겠어서 이렇게 질문합니다. 도와주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
package testJava; class FruitSeller { int numOfApple; int myMoney; int APPLE_PRICE; public int saleApple(int money) { int num = money / APPLE_PRICE; numOfApple -= num; myMoney += money; return num; } public void showSaleResult() { System.out.println("남은 사과 : " + numOfApple); System.out.println("판매 수익 : " + myMoney); } public void initMembers(int money, int appleNum, int price) { myMoney = money; numOfApple = appleNum; APPLE_PRICE = price; } } class FruitBuyer { int myMoney = 10000; int numOfApple = 0; public void buyApple(FruitSeller seller, int money) { numOfApple += seller.saleApple(money); myMoney -= money; } public void showBuyResult() { System.out.println("현재 잔액 : " + myMoney); System.out.println("사과 갯수 : " + numOfApple); } } class testClass { public static void main(String[] args) { FruitSeller seller1 = new FruitSeller(); seller1.initMembers(0, 30, 1500); FruitSeller seller2 = new FruitSeller(); seller2.initMembers(0, 20, 1000); FruitBuyer buyer = new FruitBuyer(); buyer.buyApple(seller1, 4500); buyer.buyApple(seller2, 2000); System.out.println("과일 판매자1의 현재 상황"); seller1.showSaleResult(); System.out.println("과일 판매자2의 현재 상황"); seller2.showSaleResult(); System.out.println("과일 구매자의 현재 상황"); buyer.showBuyResult(); } }
제가 한번 testJava라는 이름으로 그대로 빌드한건데요. 잘 동작해요. 원인이 혹시 package를 선언안하지 않으셨어요? 아니면 책에서 복사하시면서 ansi로 넘어오지 않았는지???
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력