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