编写一个UnitConversion类,封装一些常用的单位转换算法,比如:两个单位转 换是英寸和厘米的转换,另一个是摄氏温度和华氏温度的转换(转换公式请自行查找资料)。要求该类不可被继承,也不可被实例化。然后编写一个测试类 UnitConversionTest,通过键盘输入数据,测试UnitConversion类是否能够正常工 作。
时间: 2024-03-10 19:46:06 浏览: 150
好的,我明白了。以下是UnitConversion类和UnitConversionTest类的代码实现:
```java
public final class UnitConversion {
private UnitConversion() {} // 将构造方法私有化,防止该类被实例化
// 英寸和厘米的转换
public static double inchToCm(double inch) {
return inch * 2.54;
}
public static double cmToInch(double cm) {
return cm / 2.54;
}
// 摄氏温度和华氏温度的转换
public static double celsiusToFahrenheit(double celsius) {
return celsius * 1.8 + 32;
}
public static double fahrenheitToCelsius(double fahrenheit) {
return (fahrenheit - 32) / 1.8;
}
}
```
```java
import java.util.Scanner;
public class UnitConversionTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要转换的单位类型:");
System.out.println("1. 英寸转厘米");
System.out.println("2. 厘米转英寸");
System.out.println("3. 摄氏度转华氏度");
System.out.println("4. 华氏度转摄氏度");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入英寸数:");
double inch = scanner.nextDouble();
System.out.println(inch + " 英寸 = " + UnitConversion.inchToCm(inch) + " 厘米");
break;
case 2:
System.out.println("请输入厘米数:");
double cm = scanner.nextDouble();
System.out.println(cm + " 厘米 = " + UnitConversion.cmToInch(cm) + " 英寸");
break;
case 3:
System.out.println("请输入摄氏度数:");
double celsius = scanner.nextDouble();
System.out.println(celsius + " ℃ = " + UnitConversion.celsiusToFahrenheit(celsius) + " ℉");
break;
case 4:
System.out.println("请输入华氏度数:");
double fahrenheit = scanner.nextDouble();
System.out.println(fahrenheit + " ℉ = " + UnitConversion.fahrenheitToCelsius(fahrenheit) + " ℃");
break;
default:
System.out.println("输入有误,请重新输入!");
}
scanner.close();
}
}
```
在测试类中,我们通过Scanner类从键盘输入数据,根据用户选择调用不同的方法进行单位转换,并输出转换结果。运行程序,可以得到以下输出:
```
请输入要转换的单位类型:
1. 英寸转厘米
2. 厘米转英寸
3. 摄氏度转华氏度
4. 华氏度转摄氏度
1
请输入英寸数:
10
10.0 英寸 = 25.4 厘米
```
阅读全文