C#类的使用

C#面向对象的编程思想的精髓:模拟真实世界,把真实世界中的事物抽象成类,整个运用程序就是靠类和类之间的相互协作和通信完成系统功能

总结以上的说法:程序一切来源于类,并在不同的的需求情况下在类的基础上进行扩展,以完成系统所需功能,并且不断的优化系统性能

下面讲一下我个人对“类”的理解和使用

一、关于类的基本小知识(内容不多,作为对类的系统理解)

  • 普通基类
  • 普通基类虚成员(virtral关键字修饰的成员,可以被子类重写(override))
  • 抽象类(abstract 关键字修饰,有抽象成员、实例成员,类本身不能new。抽象成员一般指抽象方法,只能有方法的声明不能具体实现,实现是由子类来完成的(override))
  • 接口(interface 关键字修饰,不能new,天生就是public 成员不能使用public 进行修饰,存在显示和隐式两种实现方式,实现接口的类必须实现接口成员)

补充一下类的访问范围:子类继承基类,可以继承基类的共有成员和受保护成员。私有成员只在类的内部可见,一般是类中的字段成员,类的外部可以通过类的属性访问器(get/set)来访问类私有成员。类的外部只能访问类的共有成员。

那么上面所列举的四种情况是什么关系呢,又是在什么情况下使用呢,我下面做一个自己的简单理解

总结一句话:继承使我们的代码得到一定程度的优化,当这些知识掌握很好之后你就会发现实现相同的功能,使用继承代码量会减少很多,更精简干练

二、举个小梨子

1、声明一个抽象类

1 abstract class LongXiaM
2     {
3         public abstract void Tongzhi(int tem);
4     }

2、创建两个普通基类实现上面抽象类

首先先声明每个类各自会用的方法

1 class Alerm
2     {
3         public void AlermXiazi(string name,int tem)
4         {
5             Console.WriteLine("{0}tongzhi,wenduyijing {1} keyi dashui le ",name,tem);
6         }
7     }
1  class ShowInfo
2     {
3         public void TongzhiLongzi(string name,int tem)
4         { 
5             Console.WriteLine("{0}tongzhi shuiwen yijing {1} ,keyhidashui le ",name,tem);
6         }
7     }

创建子类

 1 class xiazi:LongXiaM
 2     {
 3         string name;
 4         public xiazi(string n)
 5         {
 6             this.name = n;
 7         }
 8         public override void Tongzhi(int tem)
 9         {
10             Alerm a = new Alerm();
11             a.AlermXiazi(name,tem);
12         }
13     }
14 
15     class longzi:LongXiaM
16     {
17         string name;
18         public longzi(string n)
19         {
20             this.name = n;
21         }
22         public override void Tongzhi(int tem)
23         {
24             ShowInfo t = new ShowInfo();
25             t.TongzhiLongzi(name,tem);
26         }
27     }

3、创建一个中间调用的方法

 1 class BoilWater
 2     {
 3         private int tem;
 4         public List<LongXiaM> lxm = new List<LongXiaM>();
 5 
 6         public void ShowBaseInfo()
 7         {
 8             for (int i = 0; i <= 100; i++)
 9             {
10                 tem = i;
11                 if (i > 99)
12                 {
13                     if (lxm.Count > 0)
14                     {
15                         foreach (var lx in lxm)
16                         {
17                             lx.Tongzhi(tem);
18                         }
19                     }
20                 }
21             }
22         }
23     }

4、在主程序中调用

1 static void Main(string[] args)
2         {
3             BoilWater b = new BoilWater();
4             b.lxm.Add(new xiazi("看不见"));
5             b.lxm.Add(new longzi("听不见"));
6             b.ShowBaseInfo();
7         }

5、结果

1 看不见tongzhi,wenduyijing 99 keyi dashui le
2 听不见tongzhi shuiwen yijing 99,keyhidashui le

 

三、上面这个例子可以看出,当我们学会如何灵活的使用类,巧妙的设计逻辑结构后,在代码上可以节省很大的力气,也可以看出我们的专业性

 

posted @ 2019-05-04 16:11  EFLand  阅读(5226)  评论(0编辑  收藏  举报