请使用面向对象的知识,该类有两个属性,分别代表父子年龄差值和当前父亲年龄是儿子年龄的数倍;一个构造函数,要求父子年龄通过构造函数传入;一个公有方法,该方法返回值即父亲年龄变为儿子年龄2倍所需经过的年数。c#
时间: 2024-02-29 21:52:57 浏览: 9
好的,以下是使用 C# 面向对象的示例代码:
```csharp
public class AgeDiff
{
private int ageDiff;
private bool isDouble;
public AgeDiff(int fatherAge, int sonAge)
{
ageDiff = fatherAge - sonAge;
isDouble = fatherAge == sonAge * 2;
}
public double GetYearsToDouble()
{
if (isDouble)
{
return 0;
}
else
{
return ageDiff / 3.0;
}
}
}
```
在上面的代码中,我们定义了一个名为 `AgeDiff` 的类。它有两个私有属性,一个是 `ageDiff`,代表父子年龄差值,另一个是 `isDouble`,代表当前父亲年龄是否是儿子年龄的两倍。构造函数 `AgeDiff` 接收两个参数:父亲年龄和儿子年龄,并根据这两个参数计算出 `ageDiff` 和 `isDouble` 属性。公有方法 `GetYearsToDouble` 返回值即父亲年龄变为儿子年龄2倍所需经过的年数。如果当前父亲年龄已经是儿子年龄的两倍,那么返回 0,否则返回 `ageDiff / 3.0`。因为父亲年龄每次增加 3 岁,才能使得年龄翻倍。
使用该类的示例代码如下:
```csharp
AgeDiff ageDiff = new AgeDiff(45, 15);
Console.WriteLine(ageDiff.GetYearsToDouble()); // 输出 10
ageDiff = new AgeDiff(50, 25);
Console.WriteLine(ageDiff.GetYearsToDouble()); // 输出 0
```
在上面的示例中,我们分别创建了两个 `AgeDiff` 对象,并调用了 `GetYearsToDouble` 方法。第一个例子中,父亲年龄是儿子年龄的 3 倍,所以返回值是 10。第二个例子中,父亲年龄已经是儿子年龄的两倍,所以返回值是 0。