2014-09-07 3 views
-1

데모 코드를 실행할 수 없습니다. 솔직하게 말해서, 나는 그것이 왜 돌아 가지 않을지 전혀 모른다. 이견있는 사람? 내 자신의 코드를 생성하려면이 데모를 따라야합니다. 이클립스에서 대구를 실행 중이며 오류는 "병을 유형으로 해결할 수 없습니다."라는 오류가 발생합니다. 이 메시지는 약 8 번 표시됩니다. 과제에 대한 설명은 다음과 같습니다.데모 코드를 실행할 수 없습니다. 병 클래스 데모

병 클래스를 작성하십시오. 이 클래스에는 read(), set (int), set (Bottle), get() 및 (Bottle), 빼기 (Bottle), 곱하기 (Bottle), 나누기 (Bottle), 추가 subtract (int), 곱하기 (int), 나누기 (int), 같음 (Bottle) 및 toString()입니다. toString() 메서드는 클래스에서 제공됩니다. 더하기, 빼기, 곱하기 및 나누기 메서드는 모두 병을 반환합니다. 귀하의 보틀 클래스는 병이 항상 양수 값을 가지며 귀하가 선택한 최대 수를 초과하지 않도록 보장해야합니다. 이 수는 클래스의 상수로 선언됩니다. 상한 또는 하한선을 위반할 수 있는지 판단하기 위해 각 매개 변수를 검사해야합니다. 각 방법을주의 깊게 고려하고 위반 될 수있는 조건 만 테스트하십시오.

강령은 :

import java.util.Scanner; 
// test driver for the Bottle class 
public class BottleDemo3 
{ 
    public static void main(String[] args) 
    { 
     Scanner scan = new Scanner(System.in); 
     int x; 
     Bottle bottle1 = new Bottle(); 
     Bottle bottle2 = new Bottle(); 
     Bottle bottle3 = new Bottle(); 
     Bottle bottle4 = new Bottle(); 
     Bottle bottle5 = new Bottle(); 
     System.out.println("please enter a number for bottle1:"); 
     bottle1.read(); 
     System.out.println("Bottle1 is this value " + bottle1 + "."); 
     System.out.println("Please enter a number for bottle2:"); 
     bottle2.read(); 
     bottle3 = bottle3.add(bottle1); 
     bottle3 = bottle3.add(bottle2); 
     bottle3 = bottle3.divide(2); 
     System.out.println("The 2 bottle average is: " + bottle3 + "."); 
     System.out.print("Subtracting bottle1 from bottle2 is: "); 
     bottle3 = bottle2.subtract(bottle1); 
     System.out.println(bottle3); 
     bottle3 = bottle2.divide(bottle1); 
     System.out.println("Dividing bottle2 with bottle1 is: " + bottle3 + "."); 
     if (bottle1.equals(bottle2)) 
     { 
      System.out.println("Bottle1 and bottle2 are equal."); 
     } 
     else 
     { 
      System.out.println("Bottle1 and bottle2 are not equal."); 
     } 
     System.out.println("Bottle4 is now given the value of 10 with the set() method."); 
     bottle4.set(10); 
     System.out.println("The value of bottle4 is " + bottle4 + "."); 
     System.out.println("Bottle4 is now multipled with bottle1. The value is placed in " + 
       "bottle5."); 
     bottle5 = bottle1.multiply(bottle4); 
     System.out.println("The value of bottle5 is " + bottle5 + "."); 
     System.out.println("Enter an integer to add to the value bottle1 has."); 
     System.out.println("The sum will be put in bottle3."); 
     x = scan.nextInt(); 
     bottle3 = bottle1.add(x); 
     System.out.println("Adding your number " + x + 
      " to bottle1 gives a new Bottle with " + bottle3 + " in it."); 
     System.out.print("Adding the number " + bottle2 + " which is the number" + 
       " in bottle2 to the\nnumber in "); 
     bottle2 = bottle1.add(bottle2); 
     System.out.println("bottle1 which is " + bottle1 +" gives " + bottle2 + "."); 
    } 
} 
+0

'코드가 작동하지 않는 이유 및 오류가있는 경우 오류가 표시되는 이유'를 포함하십시오! –

+0

오류 메시지 – user2829552

+0

을 추가했습니다. 병 클래스를 씁니다. 병 클래스는 어디에 있습니까? –

답변

0

사실, 오류가 명확하게 당신이 BottleDemo3 클래스에서 사용하고있는 병 클래스를 구현하지 않은 제안합니다. 사실, Java에서 우리가 사용하는 모든 클래스 나 메소드는 라이브러리 형식, API 또는 사용자 정의 사용자 정의 클래스에서 어딘가에 정의되어야합니다!

귀하의 BottleDemo3 클래스는 괜찮지 만 read(),set(int),set(Bottle) 등과 같은 언급 된 모든 방법을 사용하여 Bottle이라는 기존 클래스가 필요합니다. 나중에 BottleDemo3에서 사용하기 위해 Bottle 클래스에서 이미 구현되었습니다.

그래서 BottleDemo3 클래스에서 사용하기 전에 Bottle 클래스를 준비하십시오. Bottle 객체를 사용하여 Bottle 클래스를 통해 이러한 메소드를 호출 할 수 있도록 모든 메소드를 정의해야합니다!

나의 교수는 병 데모가 자체적으로 실행되어야하며 을 우리 자신의 병 클래스의 예로서 재생해야한다고 말했습니다.

사실, 이전 프로젝트에서 Bottle.java 클래스를 이미 구현했기 때문에 실제로 말했을 수도 있습니다! 현재 프로젝트에서 import packageName.Bottle 임포트를 사용하여 .java 파일을 적절하게 임포트하십시오.

아직도 의심스러운 점이 있으시면 아래 ...

+0

네, 당신이 옳다고 믿습니다. 하지만 저는 Bottle 클래스를 직접 작성해야합니다. 그래서 저는 그 순간부터 시작했습니다. – user2829552

+0

@ user2829552- 나는 코드를 들여 쓰기하는 방법을 좋아합니다. 너 공부하고있어? –

+0

Nothern Virginia Community College 그리고 데모 수업은 제 것이 아닙니다 ... 제 교수가 수업 시간에 제공 한 수업입니다. – user2829552