Java计算器设置进制转换的完整代码
时间: 2024-12-18 20:37:36 浏览: 16
在Java中,我们可以创建一个简单的Calculator类来实现基础的进制转换功能。这里我们以十进制转二进制、八进制和十六进制为例。首先,我们需要设计一个公共接口`BaseConverter`:
```java
public interface BaseConverter {
String convert(int number, int base);
}
```
然后,创建具体的子类如`DecimalToBinaryConverter`、`DecimalToOctalConverter` 和 `DecimalToHexConverter`,分别实现二进制、八进制和十六进制转换:
```java
public class DecimalToBinaryConverter implements BaseConverter {
@Override
public String convert(int number, int base) {
return Integer.toBinaryString(number);
}
}
public class DecimalToOctalConverter implements BaseConverter {
@Override
public String convert(int number, int base) {
return Integer.toString(number, 8);
}
}
public class DecimalToHexConverter implements BaseConverter {
@Override
public String convert(int number, int base) {
return Integer.toHexString(number);
}
}
```
最后,创建一个主类`Main`来使用Calculator类:
```java
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
// 转换示例
System.out.println(calculator.convert(10, DecimalToBinaryConverter.class)); // 十进制转二进制
System.out.println(calculator.convert(10, DecimalToOctalConverter.class)); // 十进制转八进制
System.out.println(calculator.convert(10, DecimalToHexConverter.class)); // 十进制转十六进制
// 添加更多转换器并扩展支持其他基数
}
}
class Calculator {
private Map<Class<? extends BaseConverter>, BaseConverter> converters;
public Calculator() {
converters = new HashMap<>();
converters.put(DecimalToBinaryConverter.class, new DecimalToBinaryConverter());
converters.put(DecimalToOctalConverter.class, new DecimalToOctalConverter());
converters.put(DecimalToHexConverter.class, new DecimalToHexConverter());
}
public String convert(int number, Class<? extends BaseConverter> converterClass) {
if (converters.containsKey(converterClass)) {
return converters.get(converterClass).convert(number, 10); // 基础是十进制
} else {
throw new IllegalArgumentException("Unsupported conversion type");
}
}
}
```
阅读全文