编写一个UnitConversion类,封装摄氏温度和华氏温度的转换,要求该类不可被继承,也不可被实例化。然后编写一个测试类UnitConversionTest,通过键盘输入数据,测试UnitConversion类是否能够正常工作
时间: 2024-03-11 22:47:49 浏览: 28
好的,我了解了你的要求。下面是UnitConversion类的代码实现:
```java
public final class UnitConversion {
private UnitConversion() {}
public static double celsiusToFahrenheit(double celsius) {
return celsius * 1.8 + 32;
}
public static double fahrenheitToCelsius(double fahrenheit) {
return (fahrenheit - 32) / 1.8;
}
}
```
这个类使用了私有的构造方法和 final 修饰符来防止被继承或实例化。其中,celsiusToFahrenheit() 和 fahrenheitToCelsius() 方法用于摄氏温度和华氏温度的转换。
接下来是UnitConversionTest类的代码实现:
```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. 华氏度 -> 摄氏度");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print("请输入摄氏度数:");
double celsius = scanner.nextDouble();
double fahrenheit = UnitConversion.celsiusToFahrenheit(celsius);
System.out.println(celsius + " 摄氏度 = " + fahrenheit + " 华氏度");
break;
case 2:
System.out.print("请输入华氏度数:");
double fahrenheit2 = scanner.nextDouble();
double celsius2 = UnitConversion.fahrenheitToCelsius(fahrenheit2);
System.out.println(fahrenheit2 + " 华氏度 = " + celsius2 + " 摄氏度");
break;
default:
System.out.println("输入有误!");
break;
}
scanner.close();
}
}
```
这个类通过键盘输入数据,选择要进行的转换,然后调用UnitConversion类中相应的方法进行转换。输出转换结果。
希望这个答案能够帮到你。