2014-05-11 2 views
0

void 함수의 값이 계산되지 않습니다. ( ) 과제는 삽입 된 수량 및 삽입 된 가격으로 송장 금액을 계산하는 것입니다. 가격과 수량 문제가 송장 금액을 계산하고, 문제가되지 않습니다 여기 클래스 기능에서 Java 계산

는 테스트 클래스이다.

import java.util.Scanner; 

public class invoicetest { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     invoice newinvoice = new invoice(); 

     System.out.println("Please input the quantity:"); 
     newinvoice.setQuantity (input.nextInt()); 
     System.out.println("Please input the price:"); 
     newinvoice.setPrice (input.nextDouble()); 
     newinvoice.displayMessage();  
    } 

} 

그리고 여기 송장 클래스입니다 :

public class invoice { 
    private int quantity; 
    private double price, amount; 
    public double invoiceamount; 

    public int getQuantity() { 
     return quantity; 
    } 

    public double getPrice() { 
     return price; 
    } 

    public void setQuantity (int i) { 
     quantity = i; 
    } 

    public void setPrice (double i) { 
     price = i; 
    } 

    public double getInvoiceAmount() { 

     amount = quantity*price; 

     return amount; 
    } 

    public void setInvoiceAmount (double i) { 
     invoiceamount = i; 
    } 

    public void displayMessage() { 
     System.out.println(quantity); 
     System.out.println(price); 
     System.out.println(invoiceamount); 
    } 
} 

내 문제는 변수의 양이 상수 0이라는 것입니다. 저는 Java를 처음 사용하기 때문에 문제가 발생하지 않습니다. 수량과 가격을 InvoiceAmount 무효화에 사용할 수 없다고 생각하십니까? 어떻게하면 다른 기능을 사용할 수 있습니까?

답변

0

어디에도 invoiceAmount를 설정하지 마십시오.

public double getInvoiceAmount() { 

    amount = quantity*price; 

    return amount; 
} 

그래서 당신이 getInvoiceAmount()에서 얻은 결과 setInvoiceAmount를 호출합니다.
public void setInvoiceAmount (double i) { 
    invoiceamount = i; 
} 

그래서 당신 invoiceTest 클래스, 값을 인쇄하기 전에이 추가

또한
double amount = newInvoice.getInvoiceAmount(); 
newInvoice.setInvoiceAmount(amount); 

, 낙타 표기법을 사용하여, 자바 명명 규칙을 존중하십시오. 다른 사람들이 귀하의 코드를 읽는 것은 어렵습니다.

이와 같은 문제를 디버깅하는 유용한 기술은 print 문을 추가하여 변수를 추적하는 것입니다. 변수가 설정된 첫 번째 위치부터 시작하여 변수가 변경 될 때마다 어떻게 변경되는지 확인하려면 print 문을 추가하십시오. 결국 어디서 잘못되었는지 알게 될 것입니다.

+0

어떻게하면됩니까? 그냥 순서를 변경하고 집합 함수에서 계산? – user3285007

+0

이미 필요한 모든 기능을 갖추고 있습니다. 그냥 그들에게 전화하십시오 : – Zavior

+0

그것은 일했습니다 :) 대단히 감사합니다. 낙타의 의미는 무엇입니까? 클래스 이름을 대문자로 쓰는 중입니까? – user3285007