博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#类的使用
阅读量:7082 次
发布时间:2019-06-28

本文共 2827 字,大约阅读时间需要 9 分钟。

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

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

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

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

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

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

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

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

二、举个小梨子

1、声明一个抽象类

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

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

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

1 class Alerm2     {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 ShowInfo2     {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:LongXiaM16     {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
lxm = new List
(); 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 le2 听不见tongzhi shuiwen yijing 99,keyhidashui le

 

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

 

转载于:https://www.cnblogs.com/fllowerqq/p/10808775.html

你可能感兴趣的文章
【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo
查看>>
php中的或运算
查看>>
位图(BitMap)索引
查看>>
CSS3伪类和伪元素的特性和区别
查看>>
vue实现文章内容过长点击阅读全文功能
查看>>
记一次elementUI Icon 加载无效的问题。并且提示错误 Failed to decode downloaded font:
查看>>
OpenGL之位图的绘制和gluOrtho2D等函数详解
查看>>
Linux磁盘概念及其管理工具fdisk
查看>>
Linux epoll版定时器
查看>>
objective C中数据持久化方式1--对象归档
查看>>
Python面向对象编程 - 一个记事本程序范例(一)
查看>>
马桶餐厅
查看>>
我对程序员技能的一些认识
查看>>
在linux下如何修改oracle的sys和system的密码
查看>>
【C语言】01-C语言概述
查看>>
mysql FullText全文索引的问题
查看>>
空格&nbsp在不同浏览器中显示距离不一致问题解决方法
查看>>
Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)
查看>>
iOS执行时与method swizzling
查看>>
SQL点滴21—几个有点偏的语句
查看>>