有两个篮子,分别为A和B,篮子A里装着鸡蛋,篮子B里装着苹果,请用面向对象的思路实现两个篮子里的物品交换,c#实现
时间: 2023-10-09 19:17:21 浏览: 136
以下是一个简单的 C# 代码示例,用于实现两个篮子中物品的交换:
```csharp
class Basket
{
private List<object> items = new List<object>();
public void AddItem(object item)
{
items.Add(item);
}
public void RemoveItem(object item)
{
items.Remove(item);
}
public void SwapItems(Basket otherBasket, object itemInThisBasket, object itemInOtherBasket)
{
if (items.Contains(itemInThisBasket) && otherBasket.items.Contains(itemInOtherBasket))
{
this.RemoveItem(itemInThisBasket);
otherBasket.AddItem(itemInThisBasket);
otherBasket.RemoveItem(itemInOtherBasket);
this.AddItem(itemInOtherBasket);
}
else
{
throw new ArgumentException("Either the item in this basket or the item in the other basket does not exist.");
}
}
}
class Program
{
static void Main(string[] args)
{
Basket basketA = new Basket();
Basket basketB = new Basket();
basketA.AddItem("egg");
basketA.AddItem("egg");
basketB.AddItem("apple");
basketB.AddItem("apple");
Console.WriteLine("Basket A contains: " + string.Join(", ", basketA));
Console.WriteLine("Basket B contains: " + string.Join(", ", basketB));
basketA.SwapItems(basketB, "egg", "apple");
Console.WriteLine("After swapping, Basket A contains: " + string.Join(", ", basketA));
Console.WriteLine("After swapping, Basket B contains: " + string.Join(", ", basketB));
}
}
```
在这个例子中,我们创建了一个名为 `Basket` 的类,该类表示一个篮子。该类包含了三个方法:
- `AddItem(object item)`:向篮子中添加一个物品;
- `RemoveItem(object item)`:从篮子中移除一个物品;
- `SwapItems(Basket otherBasket, object itemInThisBasket, object itemInOtherBasket)`:交换两个篮子中的物品。它需要另一个篮子 `otherBasket`,以及在这个篮子中要交换的物品 `itemInThisBasket` 和在另一个篮子中要交换的物品 `itemInOtherBasket`。
在 `SwapItems` 方法中,我们首先检查两个篮子中是否都存在要交换的物品。如果存在,我们就将物品从一个篮子中移除,并将其添加到另一个篮子中。
在 `Program` 类中,我们创建了两个篮子 `basketA` 和 `basketB`,并向它们中添加了一些物品。然后,我们调用 `SwapItems` 方法来交换两个篮子中的物品。最后,我们打印出两个篮子中的物品,以验证交换是否成功。
阅读全文