2014-07-10 4 views
-2

이미 생성 된 세 클래스의 정보를 가져 오는 클래스를 만들려고합니다. 특정 숫자가 입력 된 후 세율이 계산됩니다. 클래스 중 하나의 예가 아래에 있습니다.세 클래스의 정보를 네 번째 클래스로 결합

은 System.out.print을 통해 이러한 클래스 각각 ("입력을 선택하는 가장 좋은 방법은 무엇합니다 ... 다음 과세 할 금액을 입력?

또는 세 개의 클래스로 결합한다에 의해 하나는 다시 한 번 System.out.print을 통해 (이하 "을 입력합니다 .... [정보의 모든 입력?

감사합니다. 당신이 세금을 처리하기위한 세 가지 DIFF 클래스가 있음으로 언급 한 바와 같이

package tax; 

import java.util.Scanner; 

public class china { 

    private static Scanner reader; 

    public static void main (String[] args) { 
     //constants 
     final double Tax_Rate = 0.20; 

     reader = new Scanner(System.in); 

     //Variables 
     double purchases; 
     double taxespaid; 

     //Request Input 
     System.out.print("Enter your total amount of purchases in China:"); 
     purchases = reader.nextDouble(); 

     taxespaid = purchases * Tax_Rate; 


     //Display Tax 
     System.out.println("The refund amount you owed is $" + taxespaid); 


    } 

} 
+0

당신은 그것을 가질 수 없습니다. 기본적으로 클래스로 위장 된 구조화 된 프로그램이 있습니다. – ChiefTwoPencils

+0

나는 당신이 무엇을 요구하고 있는지 말할 수는 없지만 당신이 모르기 때문에 그것이 의심 스럽습니다. –

답변

0

3 개의 diff 메소드를 가진 단일 클래스가 더 좋고 매개 변수로 amt를 전달하십시오. 그 방법에. 스캐너를 사용하여 국가에 대해 1과 계산할 금액에 대해 2와 같은 두 가지 입력을 얻습니다. 이렇게하면 문제가 해결됩니다.

1

이렇게하려면 3 개의 다른 클래스가 필요하지 않습니다. 명료 한 계층은 이상적인 행동이나 기능을 위해 사용해야합니다. 단순히 데이터를 저장하려면 데이터 구조를 사용하십시오. 국가 이름을 세율로 매핑하는 것처럼 들리므로 Map은 사용자가 수행하는 데이터 구조입니다.

코드에서지도를 사용하여 자신이 원하는 것을 달성하는 빠르고 간단한 예가 있습니다.

package tax; 

import java.util.Scanner; 
import java.util.Map; 
import java.util.HashMap; 

public class Tax{ 

    private static Scanner reader; 

    public static void main (String[] args) { 
     //constants 
     final Map<String, Double> taxRates = new HashMap<>(); 
     taxRates.put("China", 0.2); 
     taxRates.put("Japan", 0.1); 
     taxRates.put("USA", 0.3); 

     reader = new Scanner(System.in); 

     //Variables 
     double purchases; 
     double taxespaid; 
     Double taxRate; 
     String country; 

     System.out.print("Enter the country you are purchasing in: "); 
     country = reader.nextLine(); 
     taxRate = taxRates.get(country); 
     if(taxRate == null) 
     { 
      System.out.println("Could not find country: " + country); 
      return; 
     } 

     //Request Input 
     System.out.print("Enter your total amount of purchases in " + country + " :"); 
     purchases = reader.nextDouble(); 

     taxespaid = purchases * taxRate; 


     //Display Tax 
     System.out.println("The refund amount you owed is $" + taxespaid); 
    } 
} 
+0

그래, 네가 그곳에서 한 일을 보았지만 그 라인의 이유는 무엇일까. 최종지도 taxRates = new Map <>(); 다음 메시지에 문제를주는 : "여러 마커를이 줄 \t에서 - 유형 불일치 : \t지도 <문자열, 더블>에지도 <>에서 변환 할 수 없습니다 것은 \t - 유형지도를 인스턴스화 할 수 없습니다 <> \t - 인스턴스화 할 수 없습니다 Map user3821976

+0

Map이 인터페이스입니다. 따라서 인스턴스화 할 수 없습니다. 맵 구현 인 HashMap을 사용해야합니다. 그러면 문제가 해결됩니다. – studro

관련 문제