用面向对象的方法编写程序:设计一个分数类,能够完成2个分数相加。要求对输入和输出及加法运算符进行重载。
时间: 2023-05-17 11:04:21 浏览: 122
好的,这是一个很好的编程问题。以下是一个使用面向对象的方法编写的分数类的示例代码:
```python
class Fraction:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def __add__(self, other):
new_numerator = self.numerator * other.denominator + other.numerator * self.denominator
new_denominator = self.denominator * other.denominator
return Fraction(new_numerator, new_denominator)
def __str__(self):
return str(self.numerator) + "/" + str(self.denominator)
# 测试代码
f1 = Fraction(1, 2)
f2 = Fraction(3, 4)
f3 = f1 + f2
print(f3)
```
在这个示例代码中,我们定义了一个名为Fraction的类,它有两个属性:numerator和denominator,分别表示分数的分子和分母。我们还定义了一个__add__方法,它重载了加法运算符,使得我们可以像普通数字一样使用加法运算符来计算两个分数的和。最后,我们还定义了一个__str__方法,它将分数转换为字符串形式,以便我们可以方便地打印出来。
如果我们运行这个示例代码,它将输出"5/4",这是1/2和3/4的和。
阅读全文