编写一个分数类Fraction。此类包含两个整数型属性:分子和分母。定义该类的构造方法及属性的get和set方法。定义该类的化简方法,如4/8化简为1/2。定义该类的toString方法,输出化简后的
时间: 2024-10-11 15:07:22 浏览: 58
好的,我可以为您描述如何编写这样一个`Fraction`类。首先,这是一个基础的分数类设计:
```java
public class Fraction {
private int numerator; // 分子
private int denominator; // 分母
// 构造方法
public Fraction(int numerator, int denominator) {
if (denominator != 0) {
this.numerator = numerator;
this.denominator = gcd(numerator, denominator); // 使用欧几里得算法找到最大公约数进行简化
} else {
throw new IllegalArgumentException("Denominator cannot be zero.");
}
}
// 获取方法
public int getNumerator() {
return numerator;
}
public int getDenominator() {
return denominator;
}
// 设置方法
public void setNumerator(int numerator) {
this.numerator = numerator;
this.denominator = gcd(numerator, denominator);
}
public void setDenominator(int denominator) {
if (denominator != 0) {
this.denominator = gcd(numerator, denominator);
} else {
throw new IllegalArgumentException("Denominator cannot be zero.");
}
}
// 私有方法:计算最大公约数
private int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
// 化简方法
public void simplify() {
this.numerator = gcd(this.numerator, this.denominator);
}
// toString方法
@Override
public String toString() {
if (denominator == 1) {
return numerator + ""; // 如果已经是最简形式,直接返回分子
} else {
return numerator + "/" + denominator;
}
}
// 其他相关问题:
阅读全文