本篇博客对应视频讲解
回顾
我们在第一篇文章中讲了编程中最基本的内容,如输入输出、字符串处理、数字类型计算、分支及循环结构等。无论学习什么语言,这些内容都是相通的。
本篇博客主要演示列表(List)的用法以及面向对象中类的概念,通过一个具体的实例去向大家展示如何对现实对象抽象,创建类,以及如何使用它。
理论基础
我们可以通过官方文档中的解释先初步理解一下列表、类、对象等概念。然后我们通过实际的代码示例,通过自己动手编写去亲身体会一下。
理解面向对象编程
关于面向对象的编程,我们可以通过官方文档中的解释来做初步的理解。
文档中介绍了以下概念:
类和对象
继承
接口
泛型
委托
我们当前只需要对类和对象有个初步的理解即可。点击查看完整文档。
单纯讲概念是没用的,但没有理论基础也难以形成知识体系,触类旁通。所以,建议大家先总体看一遍文档内容,脑海中有个印象,然后通过我们的视频实例和自己动手实践去亲自体会,之后再看文档的时候,也许就会理解其内容了。
动手实践
- 列表List
//定义List List<string> list = new List<string>(); //添加值 list.Add("Black"); list.Add("White"); list.Add("Orange"); list.Add("Red"); list.Add("Blue"); //遍历输出 foreach (var item in list) { Console.Write(item + " "); } Console.WriteLine(); //数列示例 var fibonacciNumbers = new List<int> { 1, 1 }; while (fibonacciNumbers.Count < 20) { //取出最后两个值 var previous = fibonacciNumbers[fibonacciNumbers.Count - 1]; var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2]; //添加到列表 fibonacciNumbers.Add(previous + previous2); } //遍历输出 foreach (var item in fibonacciNumbers) Console.WriteLine(item);
- 类和对象
定义英雄类:
class Hero { /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 武器 /// </summary> public string Weapon { get; set; } /// <summary> /// 血量 /// </summary> public int HP { get; set; } public Hero(string name, int Hp) { Name = name; HP = Hp; Console.WriteLine($"{name}登场!拥有[{Hp}]血量"); } /// <summary> /// 攻击 /// </summary> /// <param name="target"></param> public void Attack(string target, int damage = 0) { Console.WriteLine($"[{Name}]使用[{Weapon}]攻击了[{target}],造成了[{damage}]点伤害"); Console.WriteLine(); } }
创建实例,使用类实例
//设置英雄库及武器库 string[] heroNames = { "钢铁侠", "蝙蝠侠", "美队", "超人" }; string[] weapons = { "拖鞋", "拳头", "棍棒", "机枪" }; //创建英雄队列 var heros = new List<Hero>(); var random = new Random(); //英雄登场,配置武器 foreach (var item in heroNames) { var hero = new Hero(item, random.Next(60, 120)); hero.Weapon = weapons[random.Next(0, 4)]; heros.Add(hero); } //大混战 while (heros.Count > 1) { var position = random.Next(0, heros.Count); var target = random.Next(0, heros.Count); if (position != target) { int damage = random.Next(16, 32); heros[position].Attack(heros[target].Name, damage); heros[target].HP = heros[target].HP - damage; if (heros[target].HP < 0) { Console.WriteLine(heros[target].Name + "已阵亡"); heros.Remove(heros[target]); } } Thread.Sleep(500); } Console.WriteLine($"最后的胜者为:[{heros[0].Name}].还有[{heros[0].HP}]血量");
以上代码是我们今天示例中的代码。我们也可以通过github上去下载完整项目代码。
建议大家同时观看视频,视频中会有更详细的说明以及操作演示。
原文地址:https://www.cnblogs.com/msdeveloper/p/9773762.html
时间: 2024-10-06 06:49:52