Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将三节课的信息合并到第四节课_Java_Class - Fatal编程技术网

Java 将三节课的信息合并到第四节课

Java 将三节课的信息合并到第四节课,java,class,Java,Class,试图创建一个类,该类将从已经创建的3个类中提取信息(它们在输入特定数字后计算税率,这三个类都有不同的税)。下面是其中一个类的示例 通过System.out.print(“输入……然后输入要纳税的金额”)选择这些类别的最佳方法是什么 或者应该将三个类合并成一个类,并再次通过System.out.print(“输入……所有输入的信息 谢谢 package tax; import java.util.Scanner; public class china { private static

试图创建一个类,该类将从已经创建的3个类中提取信息(它们在输入特定数字后计算税率,这三个类都有不同的税)。下面是其中一个类的示例

通过System.out.print(“输入……然后输入要纳税的金额”)选择这些类别的最佳方法是什么

或者应该将三个类合并成一个类,并再次通过System.out.print(“输入……所有输入的信息

谢谢

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);


    }

}

正如您所提到的,您有三个用于处理税收的差异类,最好有一个具有三个差异方法的单一类,并将amt作为参数传递给该方法。使用扫描仪可以获得两个输入,如1表示国家,2表示要计算的金额。这应该可以解决您的问题。

您不需要三个不同的类来执行类似操作。理想情况下,类别层次结构应该用于不同的行为或功能。如果您想简单地存储数据,请使用数据结构。这里听起来好像您正在将国家名称映射到税率,因此地图就是您所追求的数据结构

下面是一个在代码中使用映射来实现目标的快速而肮脏的示例

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);
    }
}
package税;
导入java.util.Scanner;
导入java.util.Map;
导入java.util.HashMap;
公共类税{
专用静态扫描仪;
公共静态void main(字符串[]args){
//常数
最终映射taxRates=新HashMap();
税率。put(“中国”,0.2);
税率。put(“日本”,0.1);
税率。put(“美国”,0.3);
读卡器=新扫描仪(System.in);
//变数
双重购买;
双重性痉挛;
双重税率;
弦国;
System.out.print(“输入您购买的国家:”;
country=reader.nextLine();
税率=税率。获取(国家);
if(taxRate==null)
{
System.out.println(“找不到国家:+国家”);
返回;
}
//请求输入
System.out.print(“在“+国家+”:”)中输入您的购买总额;
购买=reader.nextDouble();
taxespaid=购买*税率;
//显示税
System.out.println(“您所欠的退款金额为$”+taxespaid);
}
}

你不能按照你的方式来做。你基本上有一个伪装成类的结构化程序。我不知道你在问什么,但我怀疑这是因为你不知道。好吧,我知道你在那里做了什么,但最终地图税率=新地图()行的原因是什么;给出以下消息的问题:“此行有多个标记-类型不匹配:无法从映射转换为映射-无法实例化类型映射-无法实例化类型MapI出错。Map是一个接口,因此无法实例化。您需要使用HashMap,这是映射的实现。这应该可以解决您的问题。”。