用面向对象的方法编写程序:设计一个分数类,能够完成2个分数相加。要求对输入和输出及加法运算符进行重载。
时间: 2023-05-17 11:04:02 浏览: 141
好的,这是一个很好的编程问题。以下是一个基本的分数类的示例代码,它可以完成2个分数相加:
```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) # 输出 5/4
```
在这个示例中,我们定义了一个名为 Fraction 的类,它有一个构造函数,用于初始化分子和分母。我们还重载了加法运算符,使得可以对两个分数进行相加。最后,我们还重载了字符串输出运算符,以便可以将分数对象转换为字符串进行输出。
希望这个示例可以帮助你理解如何使用面向对象的方法编写一个分数类。
阅读全文