Java猫叫老鼠跑人惊醒_用代码表示如下情景:猫叫、老鼠逃跑、主人惊醒

### 1. 定义猫类型,并且该类型负责维护猫叫事件 *Cat.cs*

```csharp

using System;

namespace CatCry

{

///

/// 猫类型,维护猫叫事件

///

public class Cat

{

///

/// 猫名

///

private String _name;

///

/// 猫叫的事件

///

public event EventHandler CatCryEvent;

///

/// 构造函数

///

///

public Cat(string name)

{

_name = name;

}

///

/// 触发猫叫事件

///

public void CatCry()

{

CatCryEventArgs args = new CatCryEventArgs(_name);

Console.WriteLine(args);

CatCryEvent(this, args);

}

}

}

```

### 2. 定义猫叫事件的参数 *CatCryEventArgs.cs*

```csharp

using System;

namespace CatCry

{

///

/// 猫叫事件的参数

///

public class CatCryEventArgs : EventArgs

{

///

/// 发出叫声的猫的名字

///

private string _catname;

///

/// 构造函数

///

///

public CatCryEventArgs(string catname) : base()

{

_catname = catname;

}

///

/// 输出参数内容

///

///

public override string ToString()

{

return _catname + "叫了";

}

}

}

```

### 3. 定义猫叫事件的订阅者,即主人类型和老鼠类型

*Master.cs*

```csharp

using System;

namespace CatCry

{

///

/// 主人类型

///

public class Master

{

///

/// 主人名字

///

private string _name;

///

/// 构造方法,订阅事件

///

///

///

public Master(string name, Cat cat)

{

_name = name;

cat.CatCryEvent += CatCryHandler;

}

///

/// 猫叫事件处理方法

///

///

///

private void CatCryHandler(object sender, CatCryEventArgs e)

{

WakeUp();

}

///

/// 惊醒方法

///

private void WakeUp()

{

Console.WriteLine(_name + "醒了");

}

}

}

```

*Mouse.cs*

```csharp

using System;

namespace CatCry

{

///

/// 老鼠类型

///

public class Mouse

{

///

/// 老鼠名字

///

private string _name;

///

/// 构造方法,订阅事件

///

///

///

public Mouse(string name, Cat cat)

{

_name = name;

cat.CatCryEvent += CatCryHandler;

}

///

/// 猫叫事件处理方法

///

///

///

private void CatCryHandler(object sender, CatCryEventArgs e)

{

Run();

}

///

/// 逃跑方法

///

private void Run()

{

Console.WriteLine(_name + "逃走了");

}

}

}

```

### 4. 编写入口方法,模拟场景 *Program.cs*

```csharp

using System;

namespace CatCry

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("开始模拟");

Cat cat = new Cat("汤姆猫");

Mouse mouse1 = new Mouse("米奇", cat);

Mouse mouse2 = new Mouse("杰瑞", cat);

Master master = new Master("巴金斯", cat);

cat.CatCry();

Console.Read();

}

}

}

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值