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